Import Upstream version 0.2.3
|
@ -0,0 +1,502 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
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 and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, 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 library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete 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 distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
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 Library or any portion
|
||||
of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
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 Library, 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 Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you 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.
|
||||
|
||||
If distribution of 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 satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be 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.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library 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.
|
||||
|
||||
9. 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 Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
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 with
|
||||
this License.
|
||||
|
||||
11. 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 Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library 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 Library.
|
||||
|
||||
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.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library 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.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser 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 Library
|
||||
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 Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
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
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "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
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. 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 LIBRARY 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
|
||||
LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library 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 of the License, 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
|
@ -0,0 +1,269 @@
|
|||
# vim: set sw=8 ts=8 sts=8 noet:
|
||||
|
||||
NULL =
|
||||
|
||||
# Global options
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
EXTRA_DIST =
|
||||
BUILT_SOURCES =
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk --enable-gtk-doc --enable-introspection
|
||||
|
||||
|
||||
# Top-level directory
|
||||
EXTRA_DIST += autogen.sh
|
||||
|
||||
|
||||
# Directory: gnome-autoar
|
||||
EXTRA_DIST += \
|
||||
gnome-autoar/autoar-enum-types.h.template \
|
||||
gnome-autoar/autoar-enum-types.c.template \
|
||||
$(NULL)
|
||||
|
||||
libgnome_autoar_la_headers = \
|
||||
gnome-autoar/autoar-compressor.h \
|
||||
gnome-autoar/autoar-extractor.h \
|
||||
gnome-autoar/autoar-format-filter.h \
|
||||
gnome-autoar/autoar-misc.h \
|
||||
gnome-autoar/autoar-mime-types.h \
|
||||
$(NULL)
|
||||
libgnome_autoar_la_sources = \
|
||||
gnome-autoar/autoar-compressor.c \
|
||||
gnome-autoar/autoar-extractor.c \
|
||||
gnome-autoar/autoar-format-filter.c \
|
||||
gnome-autoar/autoar-misc.c \
|
||||
gnome-autoar/autoar-mime-types.c \
|
||||
$(NULL)
|
||||
libgnome_autoar_la_private_files = \
|
||||
gnome-autoar/autoar-private.h \
|
||||
gnome-autoar/autoar-private.c \
|
||||
$(NULL)
|
||||
libgnome_autoar_la_generated_files = \
|
||||
gnome-autoar/autoar-enum-types.h \
|
||||
gnome-autoar/autoar-enum-types.c \
|
||||
$(NULL)
|
||||
libgnome_autoar_gtk_la_headers = \
|
||||
gnome-autoar/autoar-gtk-chooser.h \
|
||||
$(NULL)
|
||||
libgnome_autoar_gtk_la_sources = \
|
||||
gnome-autoar/autoar-gtk-chooser.c \
|
||||
$(NULL)
|
||||
|
||||
BUILT_SOURCES += \
|
||||
$(libgnome_autoar_la_generated_files) \
|
||||
$(NULL)
|
||||
|
||||
lib_LTLIBRARIES = gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
nodist_pkgconfig_DATA = gnome-autoar/gnome-autoar-$(LIBGNOME_AUTOAR_API_VERSION).pc
|
||||
|
||||
autoarincludedir = $(includedir)/gnome-autoar-$(LIBGNOME_AUTOAR_API_VERSION)/gnome-autoar
|
||||
autoarinclude_HEADERS = \
|
||||
gnome-autoar/gnome-autoar.h \
|
||||
gnome-autoar/autoar-enum-types.h \
|
||||
$(libgnome_autoar_la_headers) \
|
||||
$(NULL)
|
||||
|
||||
gnome_autoar_libgnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_la_SOURCES = \
|
||||
$(libgnome_autoar_la_generated_files) \
|
||||
$(libgnome_autoar_la_private_files) \
|
||||
$(libgnome_autoar_la_headers) \
|
||||
$(libgnome_autoar_la_sources) \
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_la_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS) \
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_la_CFLAGS = \
|
||||
$(GIO_CFLAGS) \
|
||||
$(LIBARCHIVE_CFLAGS) \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir)/gnome-autoar \
|
||||
$(AM_CFLAGS) \
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_la_LIBADD = \
|
||||
$(GIO_LIBS) \
|
||||
$(LIBARCHIVE_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
if ENABLE_GTK
|
||||
|
||||
lib_LTLIBRARIES += gnome-autoar/libgnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.la
|
||||
nodist_pkgconfig_DATA += gnome-autoar/gnome-autoar-gtk-$(LIBGNOME_AUTOAR_API_VERSION).pc
|
||||
|
||||
autoargtkincludedir = $(includedir)/gnome-autoar-$(LIBGNOME_AUTOAR_API_VERSION)/gnome-autoar
|
||||
autoargtkinclude_HEADERS = \
|
||||
gnome-autoar/autoar-gtk.h \
|
||||
$(libgnome_autoar_gtk_la_headers) \
|
||||
$(NULL)
|
||||
|
||||
gnome_autoar_libgnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_la_SOURCES = \
|
||||
$(libgnome_autoar_gtk_la_headers) \
|
||||
$(libgnome_autoar_gtk_la_sources) \
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_la_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS)
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_la_CFLAGS = \
|
||||
$(GTK_CFLAGS) \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir)/gnome-autoar \
|
||||
$(AM_CFLAGS) \
|
||||
$(NULL)
|
||||
gnome_autoar_libgnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_la_LIBADD = \
|
||||
$(GTK_LIBS) \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(NULL)
|
||||
|
||||
endif
|
||||
|
||||
gnome-autoar/autoar-enum-types.h: gnome-autoar/autoar-enum-types.h.template $(libgnome_autoar_la_headers)
|
||||
$(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gnome-autoar/autoar-enum-types.h.template $(libgnome_autoar_la_headers) ) > $@
|
||||
gnome-autoar/autoar-enum-types.c: gnome-autoar/autoar-enum-types.c.template $(libgnome_autoar_la_headers)
|
||||
$(AM_V_GEN) (cd $(srcdir) && $(GLIB_MKENUMS) --template gnome-autoar/autoar-enum-types.c.template $(libgnome_autoar_la_headers) ) > $@
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
DISTCLEANFILES = $(BUILT_SOURCES) \
|
||||
gnome-autoar/gnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.pc \
|
||||
gnome-autoar/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.pc
|
||||
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
-include $(INTROSPECTION_MAKEFILE)
|
||||
INTROSPECTION_GIRS =
|
||||
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_builddir)/gnome-autoar
|
||||
INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/gnome-autoar
|
||||
|
||||
if HAVE_INTROSPECTION
|
||||
|
||||
INTROSPECTION_GIRS += gnome-autoar/GnomeAutoar-0.1.gir
|
||||
|
||||
girdir = $(datadir)/gir-1.0
|
||||
gir_DATA = $(INTROSPECTION_GIRS)
|
||||
|
||||
typelibdir = $(libdir)/girepository-1.0
|
||||
typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
||||
|
||||
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
||||
|
||||
gnome-autoar/GnomeAutoar-0.1.gir: gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la
|
||||
gnome_autoar_GnomeAutoar_0_1_gir_SCANNERFLAGS = --identifier-prefix=Autoar --c-include="gnome-autoar/gnome-autoar.h"
|
||||
gnome_autoar_GnomeAutoar_0_1_gir_CFLAGS = -I$(top_srcdir) $(AM_CFLAGS)
|
||||
gnome_autoar_GnomeAutoar_0_1_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
|
||||
gnome_autoar_GnomeAutoar_0_1_gir_LIBS = gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la
|
||||
gnome_autoar_GnomeAutoar_0_1_gir_FILES = \
|
||||
$(libgnome_autoar_la_headers) \
|
||||
$(libgnome_autoar_la_sources) \
|
||||
$(NULL)
|
||||
|
||||
if ENABLE_GTK
|
||||
|
||||
INTROSPECTION_GIRS += gnome-autoar/GnomeAutoarGtk-0.1.gir
|
||||
|
||||
gnome-autoar/GnomeAutoarGtk-0.1.gir: gnome-autoar/libgnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.la gnome-autoar/GnomeAutoar-0.1.gir
|
||||
gnome_autoar_GnomeAutoarGtk_0_1_gir_SCANNERFLAGS = --identifier-prefix=AutoarGtk --c-include="gnome-autoar/autoar-gtk.h"
|
||||
gnome_autoar_GnomeAutoarGtk_0_1_gir_CFLAGS = -I$(top_srcdir) $(AM_CFLAGS)
|
||||
gnome_autoar_GnomeAutoarGtk_0_1_gir_INCLUDES = GnomeAutoar-0.1 Gtk-3.0
|
||||
gnome_autoar_GnomeAutoarGtk_0_1_gir_LIBS = gnome-autoar/libgnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.la
|
||||
gnome_autoar_GnomeAutoarGtk_0_1_gir_FILES = \
|
||||
$(libgnome_autoar_gtk_la_headers) \
|
||||
$(libgnome_autoar_gtk_la_sources) \
|
||||
$(NULL)
|
||||
|
||||
endif
|
||||
|
||||
if ENABLE_VAPIGEN
|
||||
include $(VAPIGEN_MAKEFILE)
|
||||
|
||||
gnome-autoar/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.vapi: gnome-autoar/GnomeAutoar-0.1.gir
|
||||
|
||||
VAPIGEN_VAPIS = gnome-autoar/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.vapi
|
||||
|
||||
gnome_autoar_gnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_vapi_DEPS = gio-2.0
|
||||
gnome_autoar_gnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_vapi_METADATADIRS = $(srcdir)/gnome-autoar
|
||||
gnome_autoar_gnome_autoar_@LIBGNOME_AUTOAR_API_VERSION@_vapi_FILES = gnome-autoar/GnomeAutoar-0.1.gir
|
||||
|
||||
if ENABLE_GTK
|
||||
gnome-autoar/gnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.vapi: gnome-autoar/GnomeAutoarGtk-0.1.gir gnome-autoar/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.vapi
|
||||
|
||||
VAPIGEN_VAPIS += gnome-autoar/gnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.vapi
|
||||
|
||||
gnome_autoar_gnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_vapi_DEPS = gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@ gtk+-3.0
|
||||
gnome_autoar_gnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_vapi_VAPIDIRS = $(builddir)/gnome-autoar
|
||||
gnome_autoar_gnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_vapi_METADATADIRS = $(srcdir)/gnome-autoar
|
||||
gnome_autoar_gnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_vapi_FILES = gnome-autoar/GnomeAutoarGtk-0.1.gir
|
||||
gnome_autoar_gnome_autoar_gtk_@LIBGNOME_AUTOAR_API_VERSION@_vapi_GIRDIRS = $(builddir)/gnome-autoar
|
||||
endif
|
||||
|
||||
vapidir = $(datadir)/vala/vapi
|
||||
vapi_DATA = $(VAPIGEN_VAPIS)
|
||||
|
||||
CLEANFILES += $(vapi_DATA)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
|
||||
# Directory: data
|
||||
gsettings_ENUM_NAMESPACE = org.gnome.desktop.archives
|
||||
gsettings_ENUM_FILES = $(top_srcdir)/gnome-autoar/autoar-format-filter.h
|
||||
|
||||
gsettings_SCHEMAS = data/org.gnome.desktop.archives.gschema.xml
|
||||
EXTRA_DIST += $(gsettings_SCHEMAS)
|
||||
|
||||
|
||||
# Directory: tests
|
||||
noinst_PROGRAMS = \
|
||||
tests/test-extract \
|
||||
tests/test-extract-unit \
|
||||
tests/test-create \
|
||||
$(NULL)
|
||||
|
||||
test_cflags = \
|
||||
$(GIO_CFLAGS) \
|
||||
$(LIBARCHIVE_CFLAGS) \
|
||||
-I$(top_srcdir) \
|
||||
$(AM_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
test_libs = \
|
||||
$(GIO_LIBS) \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(NULL)
|
||||
|
||||
tests_test_extract_SOURCES = tests/test-extract.c
|
||||
tests_test_extract_CFLAGS = $(test_cflags)
|
||||
tests_test_extract_LDADD = $(test_libs)
|
||||
|
||||
tests_test_extract_unit_SOURCES = tests/test-extract-unit.c
|
||||
tests_test_extract_unit_CFLAGS = $(test_cflags)
|
||||
tests_test_extract_unit_LDADD = $(test_libs)
|
||||
|
||||
tests_test_create_SOURCES = tests/test-create.c
|
||||
tests_test_create_CFLAGS = $(test_cflags)
|
||||
tests_test_create_LDADD = $(test_libs)
|
||||
|
||||
if ENABLE_GTK
|
||||
|
||||
noinst_PROGRAMS += \
|
||||
tests/test-ui \
|
||||
$(NULL)
|
||||
|
||||
test_gtk_cflags = \
|
||||
$(GTK_CFLAGS) \
|
||||
-I$(top_srcdir) \
|
||||
$(AM_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
test_gtk_libs = \
|
||||
$(GTK_LIBS) \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(NULL)
|
||||
|
||||
tests_test_ui_SOURCES = tests/test-ui.c
|
||||
tests_test_ui_CFLAGS = $(test_gtk_cflags)
|
||||
tests_test_ui_LDADD = $(test_gtk_libs)
|
||||
|
||||
endif
|
||||
|
||||
SUBDIRS = . docs
|
|
@ -0,0 +1,29 @@
|
|||
Major changes in 0.2.3:
|
||||
* Use proper extracted name for xz archives (Vyas)
|
||||
* Fix decompressing files with legacy encoding file names (Bastien Nocera)
|
||||
|
||||
Major changes in 0.2.2:
|
||||
* Fix docx files and other format subtypes of zip to be uncompressed (Carlos Soriano)
|
||||
|
||||
Major changes in 0.2.1:
|
||||
* Drop rar support since rar5 is not yet supported by libarchive (Carlos Soriano)
|
||||
|
||||
Major changes in 0.2.0:
|
||||
* Generate vala bindings (Rico Tzschichholz)
|
||||
* Check encrypted entry after header is read (Razvan Chitu)
|
||||
* Fix extraction name case, e.j.'sample.odt' in 'sample.odt.zip' (Razvan Chitu)
|
||||
* Remove GSettings schema files (Ting-Wei Lan)
|
||||
|
||||
Major changes in 0.1.2:
|
||||
* Make it possible to install multiple incompatible versions (Ting-Wei Lan)
|
||||
* Fix name matching of top-level item in archives (Razvan Chitu)
|
||||
* Fix detection of encrypted header (Razvan Chitu)
|
||||
|
||||
Major changes in 0.1.1:
|
||||
* Fix library link issues for Evolution (Razvan Chitu)
|
||||
* Make decide destination signal synchronous for Evolution (Razvan Chitu)
|
||||
* Fix licence to LGPLv2.1+ (Ting-Wei Lan)
|
||||
|
||||
Major changes in 0.1.0:
|
||||
* First development release of GNOME Autoar, a library to integrate
|
||||
compressed files management with GNOME.
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
PKG_NAME="gnome-autoar"
|
||||
|
||||
(test -f $srcdir/configure.ac \
|
||||
) || {
|
||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||
echo " top-level $PKG_NAME directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
which gnome-autogen.sh || {
|
||||
echo "You need to install gnome-common from the GNOME git"
|
||||
exit 1
|
||||
}
|
||||
|
||||
. gnome-autogen.sh
|
|
@ -0,0 +1,348 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# Copyright (C) 1999-2017 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/lib$lib.a"; then
|
||||
found=yes
|
||||
lib=$dir/lib$lib.a
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
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'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
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 $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
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 's|^.*[\\/]||; s|^[a-zA-Z]:||; 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
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || 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-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
|
@ -0,0 +1,103 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if debugging is enabled */
|
||||
#undef GNOME_ENABLE_DEBUG
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the `getgrnam' function. */
|
||||
#undef HAVE_GETGRNAM
|
||||
|
||||
/* Define to 1 if you have the `getpwnam' function. */
|
||||
#undef HAVE_GETPWNAM
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `link' function. */
|
||||
#undef HAVE_LINK
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `mkfifo' function. */
|
||||
#undef HAVE_MKFIFO
|
||||
|
||||
/* Define to 1 if you have the `mknod' function. */
|
||||
#undef HAVE_MKNOD
|
||||
|
||||
/* Define to 1 if you have the `stat' function. */
|
||||
#undef HAVE_STAT
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* 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 to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_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 <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define if debugging is disabled */
|
||||
#undef NDEBUG
|
||||
|
||||
/* 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 home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* 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 `int' if <sys/types.h> does not define. */
|
||||
#undef mode_t
|
||||
|
||||
/* Define to `long int' if <sys/types.h> does not define. */
|
||||
#undef off_t
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef ssize_t
|
|
@ -0,0 +1,142 @@
|
|||
# vim: set sw=8 ts=8 sts=8 et:
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ([2.68])
|
||||
|
||||
m4_define([major_version], [0])
|
||||
m4_define([minor_version], [2])
|
||||
m4_define([micro_version], [3])
|
||||
|
||||
AC_INIT([gnome-autoar],
|
||||
[major_version.minor_version.micro_version],
|
||||
[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-autoar],
|
||||
[gnome-autoar])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_SRCDIR([gnome-autoar/gnome-autoar.h])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 foreign dist-xz no-dist-gzip tar-ustar subdir-objects])
|
||||
AM_MAINTAINER_MODE([enable])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
||||
# reset to 0 at the beginning of a development cycle
|
||||
# increment by 1 for every stable micro release
|
||||
m4_define([interface_age], [0])
|
||||
m4_define([binary_age], [m4_eval(100 * minor_version + micro_version)])
|
||||
m4_define([lt_current], [m4_eval(binary_age - interface_age)])
|
||||
m4_define([lt_revision], [interface_age])
|
||||
m4_define([lt_age], [m4_eval(binary_age - interface_age)])
|
||||
|
||||
AC_SUBST([LIBGNOME_AUTOAR_LT_VERSION], [lt_current:lt_revision:lt_age])
|
||||
|
||||
AC_SUBST([LIBGNOME_AUTOAR_API_VERSION], [0])
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_STDC
|
||||
AC_PROG_INSTALL
|
||||
LT_INIT
|
||||
PKG_PROG_PKG_CONFIG
|
||||
GLIB_GSETTINGS
|
||||
|
||||
GNOME_DEBUG_CHECK
|
||||
GNOME_COMPILE_WARNINGS([maximum])
|
||||
GNOME_MAINTAINER_MODE_DEFINES
|
||||
|
||||
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
|
||||
AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
|
||||
AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
|
||||
|
||||
# check for gtk-doc
|
||||
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
|
||||
|
||||
# check for gobject-introspection
|
||||
GOBJECT_INTROSPECTION_CHECK([1.30.0])
|
||||
|
||||
VAPIGEN_CHECK([0.22])
|
||||
|
||||
# Checks for libraries.
|
||||
GLIB_REQUIRED=2.35.6
|
||||
GTK_REQUIRED=3.2
|
||||
LIBARCHIVE_REQUIRED=3.2.0
|
||||
|
||||
PKG_CHECK_MODULES([LIBARCHIVE], [libarchive >= $LIBARCHIVE_REQUIRED],
|
||||
[GNOME_AUTOAR_LIBARCHIVE_REQUIRES="libarchive"
|
||||
AC_SUBST([GNOME_AUTOAR_LIBARCHIVE_REQUIRES])],
|
||||
[AC_SEARCH_LIBS([archive_entry_is_encrypted], [archive],
|
||||
[GNOME_AUTOAR_LIBARCHIVE_LIBS="-larchive"
|
||||
AC_SUBST([GNOME_AUTOAR_LIBARCHIVE_LIBS])],
|
||||
[AC_MSG_ERROR([libarchive not found])])])
|
||||
|
||||
PKG_CHECK_MODULES([GIO], [
|
||||
glib-2.0 >= $GLIB_REQUIRED
|
||||
gobject-2.0 >= $GLIB_REQUIRED
|
||||
gio-2.0 >= $GLIB_REQUIRED
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE([gtk],
|
||||
[AS_HELP_STRING([--enable-gtk], [Build some common GTK+ widgets])],
|
||||
[enable_gtk="$enableval"], [enable_gtk=yes])
|
||||
if test x"$enable_gtk" = xyes; then
|
||||
PKG_CHECK_MODULES(
|
||||
[GTK], [gtk+-3.0 >= $GTK_REQUIRED], [],
|
||||
[AC_MSG_ERROR([
|
||||
|
||||
gtk+-3.0 not found (or version < $GTK_REQUIRED)
|
||||
|
||||
If you want to disable support for common GTK+ widgets,
|
||||
please append --disable-gtk to configure.
|
||||
|
||||
])])
|
||||
fi
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
AC_SUBST(GTK_LIBS)
|
||||
AM_CONDITIONAL(ENABLE_GTK, [test x"$enable_gtk" = xyes])
|
||||
|
||||
if test x"$enable_gtk_doc" = xyes && test x"$enable_gtk" '!=' xyes; then
|
||||
AC_MSG_ERROR([
|
||||
|
||||
GTK+ widgets support must be enabled to build API documentation.
|
||||
Please append --enable-gtk to configure.
|
||||
|
||||
])
|
||||
fi
|
||||
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS $DEPRECATION_FLAGS"
|
||||
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS $MORE_WARN_FLAGS"
|
||||
AC_SUBST([AM_CPPFLAGS])
|
||||
AC_SUBST([AM_CFLAGS])
|
||||
AC_SUBST([AM_LDFLAGS])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_C_INLINE
|
||||
|
||||
# Checks for library functions.
|
||||
AC_CHECK_FUNCS([getgrnam getpwnam link mkfifo mknod stat])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
docs/Makefile
|
||||
docs/reference/Makefile
|
||||
gnome-autoar/gnome-autoar-$LIBGNOME_AUTOAR_API_VERSION.pc:gnome-autoar/gnome-autoar.pc.in
|
||||
gnome-autoar/gnome-autoar-gtk-$LIBGNOME_AUTOAR_API_VERSION.pc:gnome-autoar/gnome-autoar-gtk.pc.in])
|
||||
AS_MKDIR_P([data])
|
||||
AC_OUTPUT
|
||||
|
||||
echo "
|
||||
Configuration:
|
||||
|
||||
Source code location : ${srcdir}
|
||||
Prefix : ${prefix}
|
||||
Compiler : ${CC}
|
||||
CFLAGS : ${CFLAGS}
|
||||
|
||||
Optional features:
|
||||
|
||||
Build API documentation : ${enable_gtk_doc}
|
||||
GTK+ widgets : ${enable_gtk}
|
||||
"
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist>
|
||||
<schema path="/org/gnome/desktop/archives/" id="org.gnome.desktop.archives">
|
||||
<key name="default-format" enum="org.gnome.desktop.archives.AutoarFormat">
|
||||
<default>'zip'</default>
|
||||
<summary>Default file format for new archives (archive creation)</summary>
|
||||
<description>The default file format used to create new archives.</description>
|
||||
</key>
|
||||
<key name="default-filter" enum="org.gnome.desktop.archives.AutoarFilter">
|
||||
<default>'none'</default>
|
||||
<summary>Default filter to create archives (archive creation)</summary>
|
||||
<description>The default filter used to compress new archives.</description>
|
||||
</key>
|
||||
<key name="file-name-suffix" type="as">
|
||||
<default>['zip', 'tar', 'cpio', '7z', 'rar', 'lha', 'lzh', 'xar', 'Z', 'gz', 'bz2', 'uue', 'xz', 'lz', 'lzma', 'taz', 'tbz', 'tbz2', 'tgz', 'txz', 'tlz', 'tzma', 'tzo']</default>
|
||||
<summary>File extensions of archives (archive extraction)</summary>
|
||||
<description>This list is used by applications to determine whether a file should be automatically extracted.</description>
|
||||
</key>
|
||||
<key name="file-mime-type" type="as">
|
||||
<default>['application/x-7z-compressed', 'application/x-7z-compressed-tar', 'application/x-bzip', 'application/x-bzip-compressed-tar', 'application/x-compress', 'application/x-compressed-tar', 'application/x-cpio', 'application/x-gzip', 'application/x-lha', 'application/x-lzip', 'application/x-lzip-compressed-tar', 'application/x-lzma', 'application/x-lzma-compressed-tar', 'application/x-rar', 'application/x-tar', 'application/x-tarz', 'application/x-xar', 'application/x-xz', 'application/x-xz-compressed-tar', 'application/zip', 'application/gzip', 'application/bzip2']</default>
|
||||
<summary>>File MIME types of archives (archive extraction)</summary>
|
||||
<description>This list is used by applications to determine whether a file should be automatically extracted.</description>
|
||||
</key>
|
||||
<key name="pattern-to-ignore" type="as">
|
||||
<default>['__MACOSX', '.DS_Store', '._.*']</default>
|
||||
<summary>Patterns of file names will not be extracted (archive extraction)</summary>
|
||||
<description>This list contains glob-style patterns, and it is used by applications to determine whether an entry in an archive should be written to disk.</description>
|
||||
</key>
|
||||
<key name="delete-if-succeed" type="b">
|
||||
<default>true</default>
|
||||
<summary>Whether to delete the source archive if the extraction is successful (archive extraction)</summary>
|
||||
<description>If TRUE, the source archive will be deleted after the extraction succeed</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
|
@ -0,0 +1,791 @@
|
|||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# Copyright (C) 1999-2017 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# 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 outputting dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
# Get the directory component of the given path, and save it in the
|
||||
# global variables '$dir'. Note that this directory component will
|
||||
# be either empty or ending with a '/' character. This is deliberate.
|
||||
set_dir_from ()
|
||||
{
|
||||
case $1 in
|
||||
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||
*) dir=;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Get the suffix-stripped basename of the given path, and save it the
|
||||
# global variable '$base'.
|
||||
set_base_from ()
|
||||
{
|
||||
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||
}
|
||||
|
||||
# If no dependency file was actually created by the compiler invocation,
|
||||
# we still have to create a dummy depfile, to avoid errors with the
|
||||
# Makefile "include basename.Plo" scheme.
|
||||
make_dummy_depfile ()
|
||||
{
|
||||
echo "#dummy" > "$depfile"
|
||||
}
|
||||
|
||||
# Factor out some common post-processing of the generated depfile.
|
||||
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||
aix_post_process_depfile ()
|
||||
{
|
||||
# If the compiler actually managed to produce a dependency file,
|
||||
# post-process it.
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form 'foo.o: dependency.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# $object: dependency.h
|
||||
# and one to simply output
|
||||
# dependency.h:
|
||||
# which is needed to avoid the deleted-header problem.
|
||||
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||
} > "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
}
|
||||
|
||||
# A tabulation character.
|
||||
tab=' '
|
||||
# A newline character.
|
||||
nl='
|
||||
'
|
||||
# Character ranges might be problematic outside the C locale.
|
||||
# These definitions help.
|
||||
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
lower=abcdefghijklmnopqrstuvwxyz
|
||||
digits=0123456789
|
||||
alpha=${upper}${lower}
|
||||
|
||||
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"
|
||||
|
||||
# Avoid interferences from the environment.
|
||||
gccflag= dashmflag=
|
||||
|
||||
# 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
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
if test "$depmode" = msvc7msys; then
|
||||
# This is just like msvc7 but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u='sed s,\\\\,/,g'
|
||||
depmode=msvc7
|
||||
fi
|
||||
|
||||
if test "$depmode" = xlc; then
|
||||
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||
gccflag=-qmakedep=gcc,-MF
|
||||
depmode=gcc
|
||||
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 -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||
## (see the conditional assignment to $gccflag above).
|
||||
## 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). Also, it might not be
|
||||
## supported by the other compilers which use the 'gcc' depmode.
|
||||
## - 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 -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# 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.
|
||||
## 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. hp depmode also adds that space, but also prefixes the VPATH
|
||||
## to the object. Take care to not repeat it in the output.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then
|
||||
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 ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||
| tr "$nl" ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
make_dummy_depfile
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
xlc)
|
||||
# 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
|
||||
;;
|
||||
|
||||
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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
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 -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
tcc)
|
||||
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||
# FIXME: That version still under development at the moment of writing.
|
||||
# Make that this statement remains true also for stable, released
|
||||
# versions.
|
||||
# It will wrap lines (doesn't matter whether long or short) with a
|
||||
# trailing '\', as in:
|
||||
#
|
||||
# foo.o : \
|
||||
# foo.c \
|
||||
# foo.h \
|
||||
#
|
||||
# It will put a trailing '\' even on the last line, and will use leading
|
||||
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||
# "Emit spaces for -MD").
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||
# We have to change lines of the first kind to '$object: \'.
|
||||
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||
# dummy dependency, to avoid the deleted-header problem.
|
||||
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
## The order of this option in the case statement is important, since the
|
||||
## shell code in configure will try each of these formats in the order
|
||||
## listed in this file. A plain '-MD' option would be understood by many
|
||||
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||
pgcc)
|
||||
# Portland's C compiler understands '-MD'.
|
||||
# Will always output deps to 'file.d' where file is the root name of the
|
||||
# source file under compilation, even if file resides in a subdirectory.
|
||||
# The object file name does not affect the name of the '.d' file.
|
||||
# pgcc 10.2 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using '\' :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
set_dir_from "$object"
|
||||
# Use the source, not the object, to determine the base name, since
|
||||
# that's sadly what pgcc will do too.
|
||||
set_base_from "$source"
|
||||
tmpdepfile=$base.d
|
||||
|
||||
# For projects that build the same source file twice into different object
|
||||
# files, the pgcc approach of using the *source* file root name can cause
|
||||
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||
# the same $tmpdepfile.
|
||||
lockdir=$base.d-lock
|
||||
trap "
|
||||
echo '$0: caught signal, cleaning up...' >&2
|
||||
rmdir '$lockdir'
|
||||
exit 1
|
||||
" 1 2 13 15
|
||||
numtries=100
|
||||
i=$numtries
|
||||
while test $i -gt 0; do
|
||||
# mkdir is a portable test-and-set.
|
||||
if mkdir "$lockdir" 2>/dev/null; then
|
||||
# This process acquired the lock.
|
||||
"$@" -MD
|
||||
stat=$?
|
||||
# Release the lock.
|
||||
rmdir "$lockdir"
|
||||
break
|
||||
else
|
||||
# If the lock is being held by a different process, wait
|
||||
# until the winning process is done or we timeout.
|
||||
while test -d "$lockdir" && test $i -gt 0; do
|
||||
sleep 1
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
fi
|
||||
i=`expr $i - 1`
|
||||
done
|
||||
trap - 1 2 13 15
|
||||
if test $i -le 0; then
|
||||
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||
echo "$0: check lockdir '$lockdir'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test $stat -ne 0; then
|
||||
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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
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 -ne 0; then
|
||||
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,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add 'dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
make_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.
|
||||
set_dir_from "$object"
|
||||
set_base_from "$object"
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# Libtool 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$base.o.d # libtool 1.5
|
||||
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
# Same post-processing that is required for AIX mode.
|
||||
aix_post_process_depfile
|
||||
;;
|
||||
|
||||
msvc7)
|
||||
if test "$libtool" = yes; then
|
||||
showIncludes=-Wc,-showIncludes
|
||||
else
|
||||
showIncludes=-showIncludes
|
||||
fi
|
||||
"$@" $showIncludes > "$tmpdepfile"
|
||||
stat=$?
|
||||
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||
if test $stat -ne 0; then
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
# The first sed program below extracts the file names and escapes
|
||||
# backslashes for cygpath. The second sed program outputs the file
|
||||
# name when reading, but also accumulates all include files in the
|
||||
# hold buffer in order to output them again at the end. This only
|
||||
# works with sed implementations that can handle large buffers.
|
||||
sed < "$tmpdepfile" -n '
|
||||
/^Note: including file: *\(.*\)/ {
|
||||
s//\1/
|
||||
s/\\/\\\\/g
|
||||
p
|
||||
}' | $cygpath_u | sort -u | sed -n '
|
||||
s/ /\\ /g
|
||||
s/\(.*\)/'"$tab"'\1 \\/p
|
||||
s/.\(.*\) \\/\1:/
|
||||
H
|
||||
$ {
|
||||
s/.*/'"$tab"'/
|
||||
G
|
||||
p
|
||||
}' >> "$depfile"
|
||||
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvc7msys)
|
||||
# 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
|
||||
;;
|
||||
|
||||
#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 "X$1" != 'X--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|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
tr ' ' "$nl" < "$tmpdepfile" \
|
||||
| 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 "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
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.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$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"
|
||||
# makedepend may prepend the VPATH from the source file name to the object.
|
||||
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed '1,2d' "$tmpdepfile" \
|
||||
| tr ' ' "$nl" \
|
||||
| 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 "X$1" != 'X--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.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||
echo "$tab" >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# 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
|
||||
;;
|
||||
|
||||
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-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
|
@ -0,0 +1 @@
|
|||
SUBDIRS = reference
|
|
@ -0,0 +1,658 @@
|
|||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2017 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@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@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 = docs
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||||
ctags-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 \
|
||||
tags-recursive uninstall-recursive
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
am__recursive_targets = \
|
||||
$(RECURSIVE_TARGETS) \
|
||||
$(RECURSIVE_CLEAN_TARGETS) \
|
||||
$(am__extra_recursive_targets)
|
||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
distdir
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GIO_CFLAGS = @GIO_CFLAGS@
|
||||
GIO_LIBS = @GIO_LIBS@
|
||||
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
|
||||
GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
|
||||
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
|
||||
GLIB_MKENUMS = @GLIB_MKENUMS@
|
||||
GNOME_AUTOAR_LIBARCHIVE_LIBS = @GNOME_AUTOAR_LIBARCHIVE_LIBS@
|
||||
GNOME_AUTOAR_LIBARCHIVE_REQUIRES = @GNOME_AUTOAR_LIBARCHIVE_REQUIRES@
|
||||
GREP = @GREP@
|
||||
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
|
||||
GTKDOC_CHECK = @GTKDOC_CHECK@
|
||||
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
|
||||
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
|
||||
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
|
||||
GTKDOC_MKPDF = @GTKDOC_MKPDF@
|
||||
GTKDOC_REBASE = @GTKDOC_REBASE@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HTML_DIR = @HTML_DIR@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
|
||||
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
|
||||
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
|
||||
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
|
||||
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
|
||||
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBGNOME_AUTOAR_API_VERSION = @LIBGNOME_AUTOAR_API_VERSION@
|
||||
LIBGNOME_AUTOAR_LT_VERSION = @LIBGNOME_AUTOAR_LT_VERSION@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VAPIGEN = @VAPIGEN@
|
||||
VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
|
||||
VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
|
||||
VERSION = @VERSION@
|
||||
WARN_CFLAGS = @WARN_CFLAGS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
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@
|
||||
gsettingsschemadir = @gsettingsschemadir@
|
||||
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_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = reference
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign docs/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
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.
|
||||
$(am__recursive_targets):
|
||||
@fail=; \
|
||||
if $(am__make_keepgoing); then \
|
||||
failcom='fail=yes'; \
|
||||
else \
|
||||
failcom='exit 1'; \
|
||||
fi; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
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; \
|
||||
($(am__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"
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-recursive
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
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 || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-recursive
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-recursive
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
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 "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$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 \
|
||||
$(am__make_dryrun) \
|
||||
|| test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
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:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-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
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
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: $(am__recursive_targets) install-am install-strip
|
||||
|
||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
|
||||
check-am clean clean-generic clean-libtool cscopelist-am ctags \
|
||||
ctags-am 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-am uninstall uninstall-am
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# 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:
|
|
@ -0,0 +1,44 @@
|
|||
# vim: set sw=8 ts=8 sts=8 noet:
|
||||
|
||||
NULL =
|
||||
|
||||
# We require automake 1.6 at least.
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
|
||||
DOC_MODULE=gnome-autoar
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
|
||||
MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
|
||||
DOC_SOURCE_DIR=$(top_srcdir)/gnome-autoar
|
||||
HFILE_GLOB=$(top_srcdir)/gnome-autoar/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/gnome-autoar/*.c
|
||||
|
||||
IGNORE_HFILES = \
|
||||
gnome-autoar.h \
|
||||
autoar-gtk.h \
|
||||
autoar-enum-types.h \
|
||||
autoar-private.h \
|
||||
$(NULL)
|
||||
|
||||
IGNORE_CFILES = \
|
||||
autoar-enum-types.c \
|
||||
autoar-private.c \
|
||||
$(NULL)
|
||||
|
||||
GTKDOC_CFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
$(NULL)
|
||||
|
||||
GTKDOC_LIBS = \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(NULL)
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
||||
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
||||
#TESTS = $(GTKDOC_CHECK)
|
||||
endif
|
|
@ -0,0 +1,821 @@
|
|||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2017 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@
|
||||
|
||||
# vim: set sw=8 ts=8 sts=8 noet:
|
||||
|
||||
# -*- mode: makefile -*-
|
||||
#
|
||||
# gtk-doc.make - make rules for gtk-doc
|
||||
# Copyright (C) 2003 James Henstridge
|
||||
# 2004-2007 Damon Chaplin
|
||||
# 2007-2017 Stefan Sauer
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
####################################
|
||||
# Everything below here is generic #
|
||||
####################################
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@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 = docs/reference
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/gtk-doc.make
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AM_LDFLAGS = @AM_LDFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GIO_CFLAGS = @GIO_CFLAGS@
|
||||
GIO_LIBS = @GIO_LIBS@
|
||||
GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
|
||||
GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
|
||||
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
|
||||
GLIB_MKENUMS = @GLIB_MKENUMS@
|
||||
GNOME_AUTOAR_LIBARCHIVE_LIBS = @GNOME_AUTOAR_LIBARCHIVE_LIBS@
|
||||
GNOME_AUTOAR_LIBARCHIVE_REQUIRES = @GNOME_AUTOAR_LIBARCHIVE_REQUIRES@
|
||||
GREP = @GREP@
|
||||
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
|
||||
GTKDOC_CHECK = @GTKDOC_CHECK@
|
||||
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
|
||||
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
|
||||
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
|
||||
GTKDOC_MKPDF = @GTKDOC_MKPDF@
|
||||
GTKDOC_REBASE = @GTKDOC_REBASE@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HTML_DIR = @HTML_DIR@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
|
||||
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
|
||||
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
|
||||
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
|
||||
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
|
||||
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
|
||||
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
|
||||
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBARCHIVE_CFLAGS = @LIBARCHIVE_CFLAGS@
|
||||
LIBARCHIVE_LIBS = @LIBARCHIVE_LIBS@
|
||||
LIBGNOME_AUTOAR_API_VERSION = @LIBGNOME_AUTOAR_API_VERSION@
|
||||
LIBGNOME_AUTOAR_LT_VERSION = @LIBGNOME_AUTOAR_LT_VERSION@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VAPIGEN = @VAPIGEN@
|
||||
VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
|
||||
VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
|
||||
VERSION = @VERSION@
|
||||
WARN_CFLAGS = @WARN_CFLAGS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
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@
|
||||
gsettingsschemadir = @gsettingsschemadir@
|
||||
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_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
NULL =
|
||||
|
||||
# We require automake 1.6 at least.
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
DOC_MODULE = gnome-autoar
|
||||
DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
|
||||
MKDB_OPTIONS = --xml-mode --output-format=xml
|
||||
DOC_SOURCE_DIR = $(top_srcdir)/gnome-autoar
|
||||
HFILE_GLOB = $(top_srcdir)/gnome-autoar/*.h
|
||||
CFILE_GLOB = $(top_srcdir)/gnome-autoar/*.c
|
||||
IGNORE_HFILES = \
|
||||
gnome-autoar.h \
|
||||
autoar-gtk.h \
|
||||
autoar-enum-types.h \
|
||||
autoar-private.h \
|
||||
$(NULL)
|
||||
|
||||
IGNORE_CFILES = \
|
||||
autoar-enum-types.c \
|
||||
autoar-private.c \
|
||||
$(NULL)
|
||||
|
||||
GTKDOC_CFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
$(NULL)
|
||||
|
||||
GTKDOC_LIBS = \
|
||||
$(top_builddir)/gnome-autoar/libgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@.la \
|
||||
$(NULL)
|
||||
|
||||
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
|
||||
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
|
||||
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN =
|
||||
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
|
||||
|
||||
# We set GPATH here; this gives us semantics for GNU make
|
||||
# which are more like other make's VPATH, when it comes to
|
||||
# whether a source that is a target of one rule is then
|
||||
# searched for in VPATH/GPATH.
|
||||
#
|
||||
GPATH = $(srcdir)
|
||||
TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
|
||||
SETUP_FILES = \
|
||||
$(content_files) \
|
||||
$(expand_content_files) \
|
||||
$(DOC_MAIN_SGML_FILE) \
|
||||
$(DOC_MODULE)-sections.txt \
|
||||
$(DOC_MODULE)-overrides.txt
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(HTML_IMAGES) \
|
||||
$(SETUP_FILES)
|
||||
|
||||
DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
|
||||
html-build.stamp pdf-build.stamp \
|
||||
sgml.stamp html.stamp pdf.stamp
|
||||
|
||||
SCANOBJ_FILES = \
|
||||
$(DOC_MODULE).args \
|
||||
$(DOC_MODULE).hierarchy \
|
||||
$(DOC_MODULE).interfaces \
|
||||
$(DOC_MODULE).prerequisites \
|
||||
$(DOC_MODULE).signals
|
||||
|
||||
REPORT_FILES = \
|
||||
$(DOC_MODULE)-undocumented.txt \
|
||||
$(DOC_MODULE)-undeclared.txt \
|
||||
$(DOC_MODULE)-unused.txt
|
||||
|
||||
CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
|
||||
@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
|
||||
@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
|
||||
@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
|
||||
@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
|
||||
|
||||
#### setup ####
|
||||
GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@)
|
||||
GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build";
|
||||
|
||||
#### scan ####
|
||||
GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@)
|
||||
GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files";
|
||||
GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@)
|
||||
GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects";
|
||||
|
||||
#### xml ####
|
||||
GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@)
|
||||
GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_XML_0 = @echo " DOC Building XML";
|
||||
|
||||
#### html ####
|
||||
GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@)
|
||||
GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_HTML_0 = @echo " DOC Building HTML";
|
||||
GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@)
|
||||
GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references";
|
||||
|
||||
#### pdf ####
|
||||
GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@)
|
||||
GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_PDF_0 = @echo " DOC Building PDF";
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
@ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
||||
@ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/reference/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign docs/reference/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_srcdir)/gtk-doc.make $(am__empty):
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags TAGS:
|
||||
|
||||
ctags CTAGS:
|
||||
|
||||
cscope cscopelist:
|
||||
|
||||
|
||||
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 "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$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
|
||||
@ENABLE_GTK_DOC_FALSE@all-local:
|
||||
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:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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 clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-local
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic \
|
||||
maintainer-clean-local
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-local
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am all-local check check-am clean clean-generic \
|
||||
clean-libtool clean-local cscopelist-am ctags-am dist-hook \
|
||||
distclean distclean-generic distclean-libtool distclean-local \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-data-local \
|
||||
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 \
|
||||
maintainer-clean-local mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
|
||||
uninstall-am uninstall-local
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
gtkdoc-check.test: Makefile
|
||||
$(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
|
||||
echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
|
||||
chmod +x $@
|
||||
|
||||
all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
|
||||
.PHONY: all-gtk-doc
|
||||
|
||||
@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc
|
||||
|
||||
docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
|
||||
|
||||
$(REPORT_FILES): sgml-build.stamp
|
||||
|
||||
setup-build.stamp:
|
||||
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||
files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
|
||||
if test "x$$files" != "x" ; then \
|
||||
for file in $$files ; do \
|
||||
destdir=`dirname $(abs_builddir)/$$file`; \
|
||||
test -d "$$destdir" || mkdir -p "$$destdir"; \
|
||||
test -f $(abs_srcdir)/$$file && \
|
||||
cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
|
||||
done; \
|
||||
fi; \
|
||||
fi
|
||||
$(AM_V_at)touch setup-build.stamp
|
||||
|
||||
scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
|
||||
$(GTK_DOC_V_SCAN)_source_dir='' ; \
|
||||
for i in $(DOC_SOURCE_DIR) ; do \
|
||||
_source_dir="$${_source_dir} --source-dir=$$i" ; \
|
||||
done ; \
|
||||
gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
|
||||
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
|
||||
scanobj_options=""; \
|
||||
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
scanobj_options="--verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
|
||||
gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
|
||||
else \
|
||||
for i in $(SCANOBJ_FILES) ; do \
|
||||
test -f $$i || touch $$i ; \
|
||||
done \
|
||||
fi
|
||||
$(AM_V_at)touch scan-build.stamp
|
||||
|
||||
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
|
||||
@true
|
||||
|
||||
sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
|
||||
$(GTK_DOC_V_XML)_source_dir='' ; \
|
||||
for i in $(DOC_SOURCE_DIR) ; do \
|
||||
_source_dir="$${_source_dir} --source-dir=$$i" ; \
|
||||
done ; \
|
||||
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
|
||||
$(AM_V_at)touch sgml-build.stamp
|
||||
|
||||
sgml.stamp: sgml-build.stamp
|
||||
@true
|
||||
|
||||
$(DOC_MAIN_SGML_FILE): sgml-build.stamp
|
||||
@true
|
||||
|
||||
xml/gtkdocentities.ent: Makefile
|
||||
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
|
||||
echo "<!ENTITY package \"$(PACKAGE)\">"; \
|
||||
echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
|
||||
echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
|
||||
echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
|
||||
echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
|
||||
echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
|
||||
echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
|
||||
) > $@
|
||||
|
||||
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
||||
$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
|
||||
mkhtml_options=""; \
|
||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
mkhtml_options="$$mkhtml_options --verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
|
||||
if test "$$?" = "0"; then \
|
||||
mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
|
||||
fi; \
|
||||
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
|
||||
-@test "x$(HTML_IMAGES)" = "x" || \
|
||||
for file in $(HTML_IMAGES) ; do \
|
||||
test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
|
||||
test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \
|
||||
done;
|
||||
$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
|
||||
$(AM_V_at)touch html-build.stamp
|
||||
|
||||
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
||||
$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
|
||||
mkpdf_options=""; \
|
||||
gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
mkpdf_options="$$mkpdf_options --verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
if test "x$(HTML_IMAGES)" != "x"; then \
|
||||
for img in $(HTML_IMAGES); do \
|
||||
part=`dirname $$img`; \
|
||||
echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
|
||||
if test $$? != 0; then \
|
||||
mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
|
||||
fi; \
|
||||
done; \
|
||||
fi; \
|
||||
gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
|
||||
$(AM_V_at)touch pdf-build.stamp
|
||||
|
||||
##############
|
||||
|
||||
clean-local:
|
||||
@rm -f *~ *.bak
|
||||
@rm -rf .libs
|
||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
|
||||
rm -f $(DOC_MODULE).types; \
|
||||
fi
|
||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
|
||||
rm -f $(DOC_MODULE)-sections.txt; \
|
||||
fi
|
||||
|
||||
distclean-local:
|
||||
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
|
||||
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
|
||||
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||
rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
|
||||
fi
|
||||
|
||||
maintainer-clean-local:
|
||||
@rm -rf xml html
|
||||
|
||||
install-data-local:
|
||||
@installfiles=`echo $(builddir)/html/*`; \
|
||||
if test "$$installfiles" = '$(builddir)/html/*'; \
|
||||
then echo 1>&2 'Nothing to install' ; \
|
||||
else \
|
||||
if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
|
||||
else \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)"; \
|
||||
fi; \
|
||||
$(mkinstalldirs) $${installdir} ; \
|
||||
for i in $$installfiles; do \
|
||||
echo ' $(INSTALL_DATA) '$$i ; \
|
||||
$(INSTALL_DATA) $$i $${installdir}; \
|
||||
done; \
|
||||
if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
|
||||
$${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
|
||||
fi; \
|
||||
$(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
|
||||
fi
|
||||
|
||||
uninstall-local:
|
||||
@if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
|
||||
else \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)"; \
|
||||
fi; \
|
||||
rm -rf $${installdir}
|
||||
|
||||
#
|
||||
# Require gtk-doc when making dist
|
||||
#
|
||||
@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
|
||||
@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc:
|
||||
@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***"
|
||||
@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***"
|
||||
@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***"
|
||||
@HAVE_GTK_DOC_FALSE@ @false
|
||||
|
||||
dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
|
||||
@mkdir $(distdir)/html
|
||||
@cp ./html/* $(distdir)/html
|
||||
@-cp ./$(DOC_MODULE).pdf $(distdir)/
|
||||
@-cp ./$(DOC_MODULE).types $(distdir)/
|
||||
@-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
|
||||
@cd $(distdir) && rm -f $(DISTCLEANFILES)
|
||||
@$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
|
||||
|
||||
.PHONY : dist-hook-local docs
|
||||
#TESTS = $(GTKDOC_CHECK)
|
||||
|
||||
# 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:
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
||||
[
|
||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
||||
]>
|
||||
<book id="index">
|
||||
<bookinfo>
|
||||
<title>gnome-autoar Reference Manual</title>
|
||||
<releaseinfo>
|
||||
gnome-autoar provides functions, widgets, and gschemas for GNOME
|
||||
applications which want to use archives as a convenient method
|
||||
to transfer directories over the internet.
|
||||
</releaseinfo>
|
||||
</bookinfo>
|
||||
|
||||
<chapter>
|
||||
<title>gnome-autoar Core</title>
|
||||
<xi:include href="xml/autoar-compressor.xml"/>
|
||||
<xi:include href="xml/autoar-extractor.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>gnome-autoar Utilities</title>
|
||||
<xi:include href="xml/autoar-format-filter.xml"/>
|
||||
<xi:include href="xml/autoar-misc.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>gnome-autoar GTK+ Widgets</title>
|
||||
<xi:include href="xml/autoar-gtk-chooser.xml"/>
|
||||
</chapter>
|
||||
|
||||
<chapter id="object-tree">
|
||||
<title>Object Hierarchy</title>
|
||||
<xi:include href="xml/tree_index.sgml"/>
|
||||
</chapter>
|
||||
<index id="api-index-full">
|
||||
<title>API Index</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="deprecated-api-index" role="deprecated">
|
||||
<title>Index of deprecated API</title>
|
||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
</book>
|
|
@ -0,0 +1,97 @@
|
|||
<SECTION>
|
||||
<FILE>autoar-compressor</FILE>
|
||||
AUTOAR_TYPE_COMPRESSOR
|
||||
AUTOAR_COMPRESSOR_ERROR
|
||||
autoar_compressor_quark
|
||||
autoar_compressor_new
|
||||
autoar_compressor_start
|
||||
autoar_compressor_start_async
|
||||
autoar_compressor_get_source_files
|
||||
autoar_compressor_get_output_file
|
||||
autoar_compressor_get_format
|
||||
autoar_compressor_get_filter
|
||||
autoar_compressor_get_create_top_level_directory
|
||||
autoar_compressor_get_size
|
||||
autoar_compressor_get_completed_size
|
||||
autoar_compressor_get_files
|
||||
autoar_compressor_get_completed_files
|
||||
autoar_compressor_get_output_is_dest
|
||||
autoar_compressor_get_notify_interval
|
||||
autoar_compressor_set_output_is_dest
|
||||
autoar_compressor_set_notify_interval
|
||||
AutoarCompressor
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>autoar-extractor</FILE>
|
||||
AUTOAR_TYPE_EXTRACTOR
|
||||
AUTOAR_EXTRACTOR_ERROR
|
||||
autoar_extractor_quark
|
||||
autoar_extractor_new
|
||||
autoar_extractor_start
|
||||
autoar_extractor_start_async
|
||||
autoar_extractor_get_source_file
|
||||
autoar_extractor_get_output_file
|
||||
autoar_extractor_get_total_size
|
||||
autoar_extractor_get_completed_size
|
||||
autoar_extractor_get_total_files
|
||||
autoar_extractor_get_completed_files
|
||||
autoar_extractor_get_output_is_dest
|
||||
autoar_extractor_get_delete_after_extraction
|
||||
autoar_extractor_get_notify_interval
|
||||
autoar_extractor_set_output_is_dest
|
||||
autoar_extractor_set_delete_after_extraction
|
||||
autoar_extractor_set_notify_interval
|
||||
AutoarConflictAction
|
||||
AutoarExtractor
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>autoar-format-filter</FILE>
|
||||
AutoarFormat
|
||||
AutoarFilter
|
||||
AutoarFormatFunc
|
||||
AutoarFilterFunc
|
||||
autoar_format_last
|
||||
autoar_format_is_valid
|
||||
autoar_format_get_mime_type
|
||||
autoar_format_get_extension
|
||||
autoar_format_get_description
|
||||
autoar_format_get_description_libarchive
|
||||
autoar_format_get_format_libarchive
|
||||
autoar_format_get_libarchive_read
|
||||
autoar_format_get_libarchive_write
|
||||
autoar_filter_last
|
||||
autoar_filter_is_valid
|
||||
autoar_filter_get_mime_type
|
||||
autoar_filter_get_extension
|
||||
autoar_filter_get_description
|
||||
autoar_filter_get_description_libarchive
|
||||
autoar_filter_get_filter_libarchive
|
||||
autoar_filter_get_libarchive_read
|
||||
autoar_filter_get_libarchive_write
|
||||
autoar_format_filter_get_mime_type
|
||||
autoar_format_filter_get_extension
|
||||
autoar_format_filter_get_description
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>autoar-gtk-chooser</FILE>
|
||||
autoar_gtk_chooser_simple_new
|
||||
autoar_gtk_chooser_simple_get
|
||||
autoar_gtk_chooser_advanced_new
|
||||
autoar_gtk_chooser_advanced_get
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>autoar-mime-types</FILE>
|
||||
autoar_check_mime_type_supported
|
||||
autoar_query_mime_type_supported
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>autoar-misc</FILE>
|
||||
AUTOAR_LIBARCHIVE_ERROR
|
||||
autoar_libarchive_quark
|
||||
</SECTION>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
autoar_compressor_get_type
|
||||
autoar_extractor_get_type
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Annotation Glossary: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsS">S</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#glsT">T</a></span></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
|
||||
</tr></table>
|
||||
<div class="glossary">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
|
||||
<a name="glsS"></a><h3 class="title">S</h3>
|
||||
<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
|
||||
<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
|
||||
<a name="glsT"></a><h3 class="title">T</h3>
|
||||
<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
|
||||
<dd class="glossdef"><p>Free data after the code is done.</p></dd>
|
||||
<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
|
||||
<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,468 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>API Index: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="object-tree.html" title="Object Hierarchy">
|
||||
<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxC">C</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxE">E</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxF">F</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxG">G</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxL">L</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxQ">Q</a>
|
||||
<span class="dim">|</span>
|
||||
<a class="shortcut" href="#idxT">T</a></span></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="index">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="api-index-full"></a>API Index</h1></div></div></div>
|
||||
<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
|
||||
<dt>
|
||||
autoar_check_mime_type_supported, function in autoar-mime-types
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-struct" title="AutoarCompressor">AutoarCompressor</a>, struct in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-cancelled" title="The “cancelled” signal">AutoarCompressor::cancelled</a>, object signal in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-completed" title="The “completed” signal">AutoarCompressor::completed</a>, object signal in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-decide-dest" title="The “decide-dest” signal">AutoarCompressor::decide-dest</a>, object signal in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-error" title="The “error” signal">AutoarCompressor::error</a>, object signal in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor-progress" title="The “progress” signal">AutoarCompressor::progress</a>, object signal in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--completed-files" title="The “completed-files” property">AutoarCompressor:completed-files</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--completed-size" title="The “completed-size” property">AutoarCompressor:completed-size</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--create-top-level-directory" title="The “create-top-level-directory” property">AutoarCompressor:create-top-level-directory</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--files" title="The “files” property">AutoarCompressor:files</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--filter" title="The “filter” property">AutoarCompressor:filter</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--format" title="The “format” property">AutoarCompressor:format</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--notify-interval" title="The “notify-interval” property">AutoarCompressor:notify-interval</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--output-file" title="The “output-file” property">AutoarCompressor:output-file</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--output-is-dest" title="The “output-is-dest” property">AutoarCompressor:output-is-dest</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--size" title="The “size” property">AutoarCompressor:size</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AutoarCompressor--source-files" title="The “source-files” property">AutoarCompressor:source-files</a>, object property in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AUTOAR-COMPRESSOR-ERROR:CAPS" title="AUTOAR_COMPRESSOR_ERROR">AUTOAR_COMPRESSOR_ERROR</a>, macro in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-completed-files" title="autoar_compressor_get_completed_files ()">autoar_compressor_get_completed_files</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-completed-size" title="autoar_compressor_get_completed_size ()">autoar_compressor_get_completed_size</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-create-top-level-directory" title="autoar_compressor_get_create_top_level_directory ()">autoar_compressor_get_create_top_level_directory</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-files" title="autoar_compressor_get_files ()">autoar_compressor_get_files</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-filter" title="autoar_compressor_get_filter ()">autoar_compressor_get_filter</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-format" title="autoar_compressor_get_format ()">autoar_compressor_get_format</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-notify-interval" title="autoar_compressor_get_notify_interval ()">autoar_compressor_get_notify_interval</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-output-file" title="autoar_compressor_get_output_file ()">autoar_compressor_get_output_file</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-output-is-dest" title="autoar_compressor_get_output_is_dest ()">autoar_compressor_get_output_is_dest</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-size" title="autoar_compressor_get_size ()">autoar_compressor_get_size</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-get-source-files" title="autoar_compressor_get_source_files ()">autoar_compressor_get_source_files</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-new" title="autoar_compressor_new ()">autoar_compressor_new</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-quark" title="autoar_compressor_quark ()">autoar_compressor_quark</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-set-notify-interval" title="autoar_compressor_set_notify_interval ()">autoar_compressor_set_notify_interval</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-set-output-is-dest" title="autoar_compressor_set_output_is_dest ()">autoar_compressor_set_output_is_dest</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-start" title="autoar_compressor_start ()">autoar_compressor_start</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#autoar-compressor-start-async" title="autoar_compressor_start_async ()">autoar_compressor_start_async</a>, function in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarConflictAction" title="enum AutoarConflictAction">AutoarConflictAction</a>, enum in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxE"></a><h3 class="title">E</h3>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-struct" title="AutoarExtractor">AutoarExtractor</a>, struct in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-cancelled" title="The “cancelled” signal">AutoarExtractor::cancelled</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-completed" title="The “completed” signal">AutoarExtractor::completed</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-conflict" title="The “conflict” signal">AutoarExtractor::conflict</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-decide-destination" title="The “decide-destination” signal">AutoarExtractor::decide-destination</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-error" title="The “error” signal">AutoarExtractor::error</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-progress" title="The “progress” signal">AutoarExtractor::progress</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor-scanned" title="The “scanned” signal">AutoarExtractor::scanned</a>, object signal in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--completed-files" title="The “completed-files” property">AutoarExtractor:completed-files</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--completed-size" title="The “completed-size” property">AutoarExtractor:completed-size</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--delete-after-extraction" title="The “delete-after-extraction” property">AutoarExtractor:delete-after-extraction</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--notify-interval" title="The “notify-interval” property">AutoarExtractor:notify-interval</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--output-file" title="The “output-file” property">AutoarExtractor:output-file</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--output-is-dest" title="The “output-is-dest” property">AutoarExtractor:output-is-dest</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--source-file" title="The “source-file” property">AutoarExtractor:source-file</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--total-files" title="The “total-files” property">AutoarExtractor:total-files</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AutoarExtractor--total-size" title="The “total-size” property">AutoarExtractor:total-size</a>, object property in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AUTOAR-EXTRACTOR-ERROR:CAPS" title="AUTOAR_EXTRACTOR_ERROR">AUTOAR_EXTRACTOR_ERROR</a>, macro in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-completed-files" title="autoar_extractor_get_completed_files ()">autoar_extractor_get_completed_files</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-completed-size" title="autoar_extractor_get_completed_size ()">autoar_extractor_get_completed_size</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-delete-after-extraction" title="autoar_extractor_get_delete_after_extraction ()">autoar_extractor_get_delete_after_extraction</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-notify-interval" title="autoar_extractor_get_notify_interval ()">autoar_extractor_get_notify_interval</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-output-file" title="autoar_extractor_get_output_file ()">autoar_extractor_get_output_file</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-output-is-dest" title="autoar_extractor_get_output_is_dest ()">autoar_extractor_get_output_is_dest</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-source-file" title="autoar_extractor_get_source_file ()">autoar_extractor_get_source_file</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-total-files" title="autoar_extractor_get_total_files ()">autoar_extractor_get_total_files</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-get-total-size" title="autoar_extractor_get_total_size ()">autoar_extractor_get_total_size</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-new" title="autoar_extractor_new ()">autoar_extractor_new</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-quark" title="autoar_extractor_quark ()">autoar_extractor_quark</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-set-delete-after-extraction" title="autoar_extractor_set_delete_after_extraction ()">autoar_extractor_set_delete_after_extraction</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-set-notify-interval" title="autoar_extractor_set_notify_interval ()">autoar_extractor_set_notify_interval</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-set-output-is-dest" title="autoar_extractor_set_output_is_dest ()">autoar_extractor_set_output_is_dest</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-start" title="autoar_extractor_start ()">autoar_extractor_start</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#autoar-extractor-start-async" title="autoar_extractor_start_async ()">autoar_extractor_start_async</a>, function in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxF"></a><h3 class="title">F</h3>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter">AutoarFilter</a>, enum in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilterFunc" title="AutoarFilterFunc ()">AutoarFilterFunc</a>, user_function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-description" title="autoar_filter_get_description ()">autoar_filter_get_description</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-description-libarchive" title="autoar_filter_get_description_libarchive ()">autoar_filter_get_description_libarchive</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-extension" title="autoar_filter_get_extension ()">autoar_filter_get_extension</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-filter-libarchive" title="autoar_filter_get_filter_libarchive ()">autoar_filter_get_filter_libarchive</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-libarchive-read" title="autoar_filter_get_libarchive_read ()">autoar_filter_get_libarchive_read</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-libarchive-write" title="autoar_filter_get_libarchive_write ()">autoar_filter_get_libarchive_write</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-get-mime-type" title="autoar_filter_get_mime_type ()">autoar_filter_get_mime_type</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-is-valid" title="autoar_filter_is_valid ()">autoar_filter_is_valid</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-filter-last" title="autoar_filter_last ()">autoar_filter_last</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat">AutoarFormat</a>, enum in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormatFunc" title="AutoarFormatFunc ()">AutoarFormatFunc</a>, user_function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-description" title="autoar_format_filter_get_description ()">autoar_format_filter_get_description</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-extension" title="autoar_format_filter_get_extension ()">autoar_format_filter_get_extension</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-mime-type" title="autoar_format_filter_get_mime_type ()">autoar_format_filter_get_mime_type</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-description" title="autoar_format_get_description ()">autoar_format_get_description</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-description-libarchive" title="autoar_format_get_description_libarchive ()">autoar_format_get_description_libarchive</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-extension" title="autoar_format_get_extension ()">autoar_format_get_extension</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-format-libarchive" title="autoar_format_get_format_libarchive ()">autoar_format_get_format_libarchive</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-libarchive-read" title="autoar_format_get_libarchive_read ()">autoar_format_get_libarchive_read</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-libarchive-write" title="autoar_format_get_libarchive_write ()">autoar_format_get_libarchive_write</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-get-mime-type" title="autoar_format_get_mime_type ()">autoar_format_get_mime_type</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-is-valid" title="autoar_format_is_valid ()">autoar_format_is_valid</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-format-filter.html#autoar-format-last" title="autoar_format_last ()">autoar_format_last</a>, function in <a class="link" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">autoar-format-filter</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxG"></a><h3 class="title">G</h3>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-get" title="autoar_gtk_chooser_advanced_get ()">autoar_gtk_chooser_advanced_get</a>, function in <a class="link" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">autoar-gtk-chooser</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new" title="autoar_gtk_chooser_advanced_new ()">autoar_gtk_chooser_advanced_new</a>, function in <a class="link" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">autoar-gtk-chooser</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-get" title="autoar_gtk_chooser_simple_get ()">autoar_gtk_chooser_simple_get</a>, function in <a class="link" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">autoar-gtk-chooser</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-new" title="autoar_gtk_chooser_simple_new ()">autoar_gtk_chooser_simple_new</a>, function in <a class="link" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">autoar-gtk-chooser</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxL"></a><h3 class="title">L</h3>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-misc.html#AUTOAR-LIBARCHIVE-ERROR:CAPS" title="AUTOAR_LIBARCHIVE_ERROR">AUTOAR_LIBARCHIVE_ERROR</a>, macro in <a class="link" href="gnome-autoar-autoar-misc.html" title="autoar-misc">autoar-misc</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="gnome-autoar-autoar-misc.html#autoar-libarchive-quark" title="autoar_libarchive_quark ()">autoar_libarchive_quark</a>, function in <a class="link" href="gnome-autoar-autoar-misc.html" title="autoar-misc">autoar-misc</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxQ"></a><h3 class="title">Q</h3>
|
||||
<dt>
|
||||
autoar_query_mime_type_supported, function in autoar-mime-types
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<a name="idxT"></a><h3 class="title">T</h3>
|
||||
<dt>
|
||||
<a class="link" href="AutoarCompressor.html#AUTOAR-TYPE-COMPRESSOR:CAPS" title="AUTOAR_TYPE_COMPRESSOR">AUTOAR_TYPE_COMPRESSOR</a>, macro in <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
<dt>
|
||||
<a class="link" href="AutoarExtractor.html#AUTOAR-TYPE-EXTRACTOR:CAPS" title="AUTOAR_TYPE_EXTRACTOR">AUTOAR_TYPE_EXTRACTOR</a>, macro in <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</dt>
|
||||
<dd></dd>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>gnome-autoar Core: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="next" href="AutoarCompressor.html" title="AutoarCompressor">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="AutoarCompressor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="chapter">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="id-1.2"></a>gnome-autoar Core</h1></div></div></div>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="AutoarCompressor.html">AutoarCompressor</a></span><span class="refpurpose"> — Automatically compress files</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="AutoarExtractor.html">AutoarExtractor</a></span><span class="refpurpose"> — Automatically extract an archive</span>
|
||||
</dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>gnome-autoar Utilities: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="AutoarExtractor.html" title="AutoarExtractor">
|
||||
<link rel="next" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="AutoarExtractor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="gnome-autoar-autoar-format-filter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="chapter">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="id-1.3"></a>gnome-autoar Utilities</h1></div></div></div>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-format-filter.html">autoar-format-filter</a></span><span class="refpurpose"> — Utilities for handling archive formats and filters</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-misc.html">autoar-misc</a></span><span class="refpurpose"> — Miscellaneous functions and shared data types used
|
||||
by gnome-autoar</span>
|
||||
</dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>gnome-autoar GTK+ Widgets: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="gnome-autoar-autoar-misc.html" title="autoar-misc">
|
||||
<link rel="next" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="gnome-autoar-autoar-misc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="gnome-autoar-autoar-gtk-chooser.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="chapter">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="id-1.4"></a>gnome-autoar GTK+ Widgets</h1></div></div></div>
|
||||
<div class="toc"><dl class="toc"><dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-gtk-chooser.html">autoar-gtk-chooser</a></span><span class="refpurpose"> — GTK+ widgets to choose archive format and filter</span>
|
||||
</dt></dl></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,271 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>autoar-gtk-chooser: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="ch03.html" title="gnome-autoar GTK+ Widgets">
|
||||
<link rel="prev" href="ch03.html" title="gnome-autoar GTK+ Widgets">
|
||||
<link rel="next" href="object-tree.html" title="Object Hierarchy">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts">
|
||||
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
|
||||
<a href="#gnome-autoar-autoar-gtk-chooser.description" class="shortcut">Description</a></span>
|
||||
</td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
|
||||
<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="refentry">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser"></a><div class="titlepage"></div>
|
||||
<div class="refnamediv"><table width="100%"><tr>
|
||||
<td valign="top">
|
||||
<h2><span class="refentrytitle"><a name="gnome-autoar-autoar-gtk-chooser.top_of_page"></a>autoar-gtk-chooser</span></h2>
|
||||
<p>autoar-gtk-chooser — GTK+ widgets to choose archive format and filter</p>
|
||||
</td>
|
||||
<td class="gallery_image" valign="top" align="right"></td>
|
||||
</tr></table></div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser.functions"></a><h2>Functions</h2>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="functions_return">
|
||||
<col class="functions_name">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="function_type">
|
||||
<a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="returnvalue">GtkWidget</span></a> *
|
||||
</td>
|
||||
<td class="function_name">
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-new" title="autoar_gtk_chooser_simple_new ()">autoar_gtk_chooser_simple_new</a> <span class="c_punctuation">()</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="function_type">
|
||||
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
|
||||
</td>
|
||||
<td class="function_name">
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-get" title="autoar_gtk_chooser_simple_get ()">autoar_gtk_chooser_simple_get</a> <span class="c_punctuation">()</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="function_type">
|
||||
<a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="returnvalue">GtkWidget</span></a> *
|
||||
</td>
|
||||
<td class="function_name">
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new" title="autoar_gtk_chooser_advanced_new ()">autoar_gtk_chooser_advanced_new</a> <span class="c_punctuation">()</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="function_type">
|
||||
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
|
||||
</td>
|
||||
<td class="function_name">
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-get" title="autoar_gtk_chooser_advanced_get ()">autoar_gtk_chooser_advanced_get</a> <span class="c_punctuation">()</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser.includes"></a><h2>Includes</h2>
|
||||
<pre class="synopsis">#include <gnome-autoar/autoar-gtk.h>
|
||||
</pre>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser.description"></a><h2>Description</h2>
|
||||
<p>autoar-gtk-chooser contains two widgets for users to choose preferred
|
||||
archive format and filter.</p>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser.functions_details"></a><h2>Functions</h2>
|
||||
<div class="refsect2">
|
||||
<a name="autoar-gtk-chooser-simple-new"></a><h3>autoar_gtk_chooser_simple_new ()</h3>
|
||||
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="returnvalue">GtkWidget</span></a> *
|
||||
autoar_gtk_chooser_simple_new (<em class="parameter"><code><a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a> default_format</code></em>,
|
||||
<em class="parameter"><code><a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a> default_filter</code></em>);</pre>
|
||||
<p>Create a <a href="/usr/share/gtk-doc/html/gtk4/GtkComboBox.html#GtkComboBox-struct"><span class="type">GtkComboBox</span></a> with a list of common archive format. There is also
|
||||
an option called "Other format…", which will use
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new" title="autoar_gtk_chooser_advanced_new ()"><code class="function">autoar_gtk_chooser_advanced_new()</code></a> and
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-get" title="autoar_gtk_chooser_advanced_get ()"><code class="function">autoar_gtk_chooser_advanced_get()</code></a> to select less common archive
|
||||
format. Arguments <em class="parameter"><code>default_format</code></em>
|
||||
and <em class="parameter"><code>default_filter</code></em>
|
||||
are the default archive
|
||||
format selected on the returned widget. You may want to get the preferred
|
||||
format of users using <code class="function">autoar_pref_get_default_format()</code> and
|
||||
<code class="function">autoar_pref_get_default_filter()</code>, or just set them to 1 to select
|
||||
the default archive format.</p>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-simple-new.parameters"></a><h4>Parameters</h4>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="parameters_name">
|
||||
<col class="parameters_description">
|
||||
<col width="200px" class="parameters_annotations">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>default_format</p></td>
|
||||
<td class="parameter_description"><p>an <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>default_filter</p></td>
|
||||
<td class="parameter_description"><p>an <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-simple-new.returns"></a><h4>Returns</h4>
|
||||
<p>a new <a href="/usr/share/gtk-doc/html/gtk4/GtkComboBox.html#GtkComboBox-struct"><span class="type">GtkComboBox</span></a> widget. </p>
|
||||
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="autoar-gtk-chooser-simple-get"></a><h3>autoar_gtk_chooser_simple_get ()</h3>
|
||||
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
|
||||
autoar_gtk_chooser_simple_get (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="type">GtkWidget</span></a> *simple</code></em>,
|
||||
<em class="parameter"><code><span class="type">int</span> *format</code></em>,
|
||||
<em class="parameter"><code><span class="type">int</span> *filter</code></em>);</pre>
|
||||
<p>Gets the selected archive format of the widget created by
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-new" title="autoar_gtk_chooser_simple_new ()"><code class="function">autoar_gtk_chooser_simple_new()</code></a>.</p>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-simple-get.parameters"></a><h4>Parameters</h4>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="parameters_name">
|
||||
<col class="parameters_description">
|
||||
<col width="200px" class="parameters_annotations">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>simple</p></td>
|
||||
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gtk4/GtkComboBox.html#GtkComboBox-struct"><span class="type">GtkComboBox</span></a> returned by <a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-new" title="autoar_gtk_chooser_simple_new ()"><code class="function">autoar_gtk_chooser_simple_new()</code></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>format</p></td>
|
||||
<td class="parameter_description"><p>the place to store the <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a> selected by the user</p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>filter</p></td>
|
||||
<td class="parameter_description"><p>the place to store the <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a> selected by the user</p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-simple-get.returns"></a><h4>Returns</h4>
|
||||
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>format</code></em>
|
||||
and <em class="parameter"><code>filter</code></em>
|
||||
are set. <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there is no
|
||||
selected item on <em class="parameter"><code>simple</code></em>
|
||||
, so <em class="parameter"><code>format</code></em>
|
||||
and <em class="parameter"><code>filter</code></em>
|
||||
are not modified.</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="autoar-gtk-chooser-advanced-new"></a><h3>autoar_gtk_chooser_advanced_new ()</h3>
|
||||
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="returnvalue">GtkWidget</span></a> *
|
||||
autoar_gtk_chooser_advanced_new (<em class="parameter"><code><a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a> default_format</code></em>,
|
||||
<em class="parameter"><code><a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a> default_filter</code></em>);</pre>
|
||||
<p>Create a <a href="/usr/share/gtk-doc/html/gtk4/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> with two lists. One list shows all available formats,
|
||||
and the other list shows all available filters.</p>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-advanced-new.parameters"></a><h4>Parameters</h4>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="parameters_name">
|
||||
<col class="parameters_description">
|
||||
<col width="200px" class="parameters_annotations">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>default_format</p></td>
|
||||
<td class="parameter_description"><p>an <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>default_filter</p></td>
|
||||
<td class="parameter_description"><p>an <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-advanced-new.returns"></a><h4>Returns</h4>
|
||||
<p>a new <a href="/usr/share/gtk-doc/html/gtk4/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> widget. </p>
|
||||
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="refsect2">
|
||||
<a name="autoar-gtk-chooser-advanced-get"></a><h3>autoar_gtk_chooser_advanced_get ()</h3>
|
||||
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
|
||||
autoar_gtk_chooser_advanced_get (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk4/GtkWidget.html#GtkWidget-struct"><span class="type">GtkWidget</span></a> *advanced</code></em>,
|
||||
<em class="parameter"><code><span class="type">int</span> *format</code></em>,
|
||||
<em class="parameter"><code><span class="type">int</span> *filter</code></em>);</pre>
|
||||
<p>Gets the selected archive format of the widget created by
|
||||
<a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new" title="autoar_gtk_chooser_advanced_new ()"><code class="function">autoar_gtk_chooser_advanced_new()</code></a>.</p>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-advanced-get.parameters"></a><h4>Parameters</h4>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="parameters_name">
|
||||
<col class="parameters_description">
|
||||
<col width="200px" class="parameters_annotations">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>advanced</p></td>
|
||||
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gtk4/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> returned by <a class="link" href="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new" title="autoar_gtk_chooser_advanced_new ()"><code class="function">autoar_gtk_chooser_advanced_new()</code></a></p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>format</p></td>
|
||||
<td class="parameter_description"><p>the place to store the <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFormat" title="enum AutoarFormat"><span class="type">AutoarFormat</span></a> selected by the user</p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="parameter_name"><p>filter</p></td>
|
||||
<td class="parameter_description"><p>the place to store the <a class="link" href="gnome-autoar-autoar-format-filter.html#AutoarFilter" title="enum AutoarFilter"><span class="type">AutoarFilter</span></a> selected by the user</p></td>
|
||||
<td class="parameter_annotations"> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-gtk-chooser-advanced-get.returns"></a><h4>Returns</h4>
|
||||
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>format</code></em>
|
||||
and <em class="parameter"><code>filter</code></em>
|
||||
are set. <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there is no
|
||||
selected item on <em class="parameter"><code>advanced</code></em>
|
||||
, so <em class="parameter"><code>format</code></em>
|
||||
and <em class="parameter"><code>filter</code></em>
|
||||
are not modified.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-gtk-chooser.other_details"></a><h2>Types and Values</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,102 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>autoar-misc: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="ch02.html" title="gnome-autoar Utilities">
|
||||
<link rel="prev" href="gnome-autoar-autoar-format-filter.html" title="autoar-format-filter">
|
||||
<link rel="next" href="ch03.html" title="gnome-autoar GTK+ Widgets">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts">
|
||||
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
|
||||
<a href="#gnome-autoar-autoar-misc.description" class="shortcut">Description</a></span>
|
||||
</td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
|
||||
<td><a accesskey="p" href="gnome-autoar-autoar-format-filter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="refentry">
|
||||
<a name="gnome-autoar-autoar-misc"></a><div class="titlepage"></div>
|
||||
<div class="refnamediv"><table width="100%"><tr>
|
||||
<td valign="top">
|
||||
<h2><span class="refentrytitle"><a name="gnome-autoar-autoar-misc.top_of_page"></a>autoar-misc</span></h2>
|
||||
<p>autoar-misc — Miscellaneous functions and shared data types used
|
||||
by gnome-autoar</p>
|
||||
</td>
|
||||
<td class="gallery_image" valign="top" align="right"></td>
|
||||
</tr></table></div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.functions"></a><h2>Functions</h2>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="functions_return">
|
||||
<col class="functions_name">
|
||||
</colgroup>
|
||||
<tbody><tr>
|
||||
<td class="function_type">
|
||||
<a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
|
||||
</td>
|
||||
<td class="function_name">
|
||||
<a class="link" href="gnome-autoar-autoar-misc.html#autoar-libarchive-quark" title="autoar_libarchive_quark ()">autoar_libarchive_quark</a> <span class="c_punctuation">()</span>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.other"></a><h2>Types and Values</h2>
|
||||
<div class="informaltable"><table class="informaltable" width="100%" border="0">
|
||||
<colgroup>
|
||||
<col width="150px" class="name">
|
||||
<col class="description">
|
||||
</colgroup>
|
||||
<tbody><tr>
|
||||
<td class="define_keyword">#define</td>
|
||||
<td class="function_name"><a class="link" href="gnome-autoar-autoar-misc.html#AUTOAR-LIBARCHIVE-ERROR:CAPS" title="AUTOAR_LIBARCHIVE_ERROR">AUTOAR_LIBARCHIVE_ERROR</a></td>
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.includes"></a><h2>Includes</h2>
|
||||
<pre class="synopsis">#include <gnome-autoar/autoar.h>
|
||||
</pre>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.description"></a><h2>Description</h2>
|
||||
<p>Public utility functions and data types used by gnome-autoar;</p>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.functions_details"></a><h2>Functions</h2>
|
||||
<div class="refsect2">
|
||||
<a name="autoar-libarchive-quark"></a><h3>autoar_libarchive_quark ()</h3>
|
||||
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
|
||||
autoar_libarchive_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
|
||||
<p>Gets the libarchive Error Quark.</p>
|
||||
<div class="refsect3">
|
||||
<a name="autoar-libarchive-quark.returns"></a><h4>Returns</h4>
|
||||
<p> a <a href="/usr/share/gtk-doc/html/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="refsect1">
|
||||
<a name="gnome-autoar-autoar-misc.other_details"></a><h2>Types and Values</h2>
|
||||
<div class="refsect2">
|
||||
<a name="AUTOAR-LIBARCHIVE-ERROR:CAPS"></a><h3>AUTOAR_LIBARCHIVE_ERROR</h3>
|
||||
<pre class="programlisting">#define AUTOAR_LIBARCHIVE_ERROR autoar_libarchive_quark()
|
||||
</pre>
|
||||
<p>Error domain for libarchive. Error returned by functions in libarchive uses
|
||||
this domain. Error code and messages are got using <code class="function">archive_errno()</code> and
|
||||
<code class="function">archive_error_string()</code> functions provided by libarchive.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,150 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<book xmlns="http://www.devhelp.net/book" title="gnome-autoar Reference Manual" link="index.html" author="" name="gnome-autoar" version="2" language="c">
|
||||
<chapters>
|
||||
<sub name="gnome-autoar Core" link="ch01.html">
|
||||
<sub name="AutoarCompressor" link="AutoarCompressor.html"/>
|
||||
<sub name="AutoarExtractor" link="AutoarExtractor.html"/>
|
||||
</sub>
|
||||
<sub name="gnome-autoar Utilities" link="ch02.html">
|
||||
<sub name="autoar-format-filter" link="gnome-autoar-autoar-format-filter.html"/>
|
||||
<sub name="autoar-misc" link="gnome-autoar-autoar-misc.html"/>
|
||||
</sub>
|
||||
<sub name="gnome-autoar GTK+ Widgets" link="ch03.html">
|
||||
<sub name="autoar-gtk-chooser" link="gnome-autoar-autoar-gtk-chooser.html"/>
|
||||
</sub>
|
||||
<sub name="Object Hierarchy" link="object-tree.html"/>
|
||||
<sub name="API Index" link="api-index-full.html"/>
|
||||
<sub name="Index of deprecated API" link="deprecated-api-index.html"/>
|
||||
<sub name="Annotation Glossary" link="annotation-glossary.html"/>
|
||||
</chapters>
|
||||
<functions>
|
||||
<keyword type="function" name="autoar_compressor_quark ()" link="AutoarCompressor.html#autoar-compressor-quark"/>
|
||||
<keyword type="function" name="autoar_compressor_new ()" link="AutoarCompressor.html#autoar-compressor-new"/>
|
||||
<keyword type="function" name="autoar_compressor_start ()" link="AutoarCompressor.html#autoar-compressor-start"/>
|
||||
<keyword type="function" name="autoar_compressor_start_async ()" link="AutoarCompressor.html#autoar-compressor-start-async"/>
|
||||
<keyword type="function" name="autoar_compressor_get_source_files ()" link="AutoarCompressor.html#autoar-compressor-get-source-files"/>
|
||||
<keyword type="function" name="autoar_compressor_get_output_file ()" link="AutoarCompressor.html#autoar-compressor-get-output-file"/>
|
||||
<keyword type="function" name="autoar_compressor_get_format ()" link="AutoarCompressor.html#autoar-compressor-get-format"/>
|
||||
<keyword type="function" name="autoar_compressor_get_filter ()" link="AutoarCompressor.html#autoar-compressor-get-filter"/>
|
||||
<keyword type="function" name="autoar_compressor_get_create_top_level_directory ()" link="AutoarCompressor.html#autoar-compressor-get-create-top-level-directory"/>
|
||||
<keyword type="function" name="autoar_compressor_get_size ()" link="AutoarCompressor.html#autoar-compressor-get-size"/>
|
||||
<keyword type="function" name="autoar_compressor_get_completed_size ()" link="AutoarCompressor.html#autoar-compressor-get-completed-size"/>
|
||||
<keyword type="function" name="autoar_compressor_get_files ()" link="AutoarCompressor.html#autoar-compressor-get-files"/>
|
||||
<keyword type="function" name="autoar_compressor_get_completed_files ()" link="AutoarCompressor.html#autoar-compressor-get-completed-files"/>
|
||||
<keyword type="function" name="autoar_compressor_get_output_is_dest ()" link="AutoarCompressor.html#autoar-compressor-get-output-is-dest"/>
|
||||
<keyword type="function" name="autoar_compressor_get_notify_interval ()" link="AutoarCompressor.html#autoar-compressor-get-notify-interval"/>
|
||||
<keyword type="function" name="autoar_compressor_set_output_is_dest ()" link="AutoarCompressor.html#autoar-compressor-set-output-is-dest"/>
|
||||
<keyword type="function" name="autoar_compressor_set_notify_interval ()" link="AutoarCompressor.html#autoar-compressor-set-notify-interval"/>
|
||||
<keyword type="macro" name="AUTOAR_TYPE_COMPRESSOR" link="AutoarCompressor.html#AUTOAR-TYPE-COMPRESSOR:CAPS"/>
|
||||
<keyword type="macro" name="AUTOAR_COMPRESSOR_ERROR" link="AutoarCompressor.html#AUTOAR-COMPRESSOR-ERROR:CAPS"/>
|
||||
<keyword type="struct" name="AutoarCompressor" link="AutoarCompressor.html#AutoarCompressor-struct"/>
|
||||
<keyword type="property" name="The “completed-files” property" link="AutoarCompressor.html#AutoarCompressor--completed-files"/>
|
||||
<keyword type="property" name="The “completed-size” property" link="AutoarCompressor.html#AutoarCompressor--completed-size"/>
|
||||
<keyword type="property" name="The “create-top-level-directory” property" link="AutoarCompressor.html#AutoarCompressor--create-top-level-directory"/>
|
||||
<keyword type="property" name="The “files” property" link="AutoarCompressor.html#AutoarCompressor--files"/>
|
||||
<keyword type="property" name="The “filter” property" link="AutoarCompressor.html#AutoarCompressor--filter"/>
|
||||
<keyword type="property" name="The “format” property" link="AutoarCompressor.html#AutoarCompressor--format"/>
|
||||
<keyword type="property" name="The “notify-interval” property" link="AutoarCompressor.html#AutoarCompressor--notify-interval"/>
|
||||
<keyword type="property" name="The “output-file” property" link="AutoarCompressor.html#AutoarCompressor--output-file"/>
|
||||
<keyword type="property" name="The “output-is-dest” property" link="AutoarCompressor.html#AutoarCompressor--output-is-dest"/>
|
||||
<keyword type="property" name="The “size” property" link="AutoarCompressor.html#AutoarCompressor--size"/>
|
||||
<keyword type="property" name="The “source-files” property" link="AutoarCompressor.html#AutoarCompressor--source-files"/>
|
||||
<keyword type="signal" name="The “cancelled” signal" link="AutoarCompressor.html#AutoarCompressor-cancelled"/>
|
||||
<keyword type="signal" name="The “completed” signal" link="AutoarCompressor.html#AutoarCompressor-completed"/>
|
||||
<keyword type="signal" name="The “decide-dest” signal" link="AutoarCompressor.html#AutoarCompressor-decide-dest"/>
|
||||
<keyword type="signal" name="The “error” signal" link="AutoarCompressor.html#AutoarCompressor-error"/>
|
||||
<keyword type="signal" name="The “progress” signal" link="AutoarCompressor.html#AutoarCompressor-progress"/>
|
||||
<keyword type="function" name="autoar_extractor_quark ()" link="AutoarExtractor.html#autoar-extractor-quark"/>
|
||||
<keyword type="function" name="autoar_extractor_new ()" link="AutoarExtractor.html#autoar-extractor-new"/>
|
||||
<keyword type="function" name="autoar_extractor_start ()" link="AutoarExtractor.html#autoar-extractor-start"/>
|
||||
<keyword type="function" name="autoar_extractor_start_async ()" link="AutoarExtractor.html#autoar-extractor-start-async"/>
|
||||
<keyword type="function" name="autoar_extractor_get_source_file ()" link="AutoarExtractor.html#autoar-extractor-get-source-file"/>
|
||||
<keyword type="function" name="autoar_extractor_get_output_file ()" link="AutoarExtractor.html#autoar-extractor-get-output-file"/>
|
||||
<keyword type="function" name="autoar_extractor_get_total_size ()" link="AutoarExtractor.html#autoar-extractor-get-total-size"/>
|
||||
<keyword type="function" name="autoar_extractor_get_completed_size ()" link="AutoarExtractor.html#autoar-extractor-get-completed-size"/>
|
||||
<keyword type="function" name="autoar_extractor_get_total_files ()" link="AutoarExtractor.html#autoar-extractor-get-total-files"/>
|
||||
<keyword type="function" name="autoar_extractor_get_completed_files ()" link="AutoarExtractor.html#autoar-extractor-get-completed-files"/>
|
||||
<keyword type="function" name="autoar_extractor_get_output_is_dest ()" link="AutoarExtractor.html#autoar-extractor-get-output-is-dest"/>
|
||||
<keyword type="function" name="autoar_extractor_get_delete_after_extraction ()" link="AutoarExtractor.html#autoar-extractor-get-delete-after-extraction"/>
|
||||
<keyword type="function" name="autoar_extractor_get_notify_interval ()" link="AutoarExtractor.html#autoar-extractor-get-notify-interval"/>
|
||||
<keyword type="function" name="autoar_extractor_set_output_is_dest ()" link="AutoarExtractor.html#autoar-extractor-set-output-is-dest"/>
|
||||
<keyword type="function" name="autoar_extractor_set_delete_after_extraction ()" link="AutoarExtractor.html#autoar-extractor-set-delete-after-extraction"/>
|
||||
<keyword type="function" name="autoar_extractor_set_notify_interval ()" link="AutoarExtractor.html#autoar-extractor-set-notify-interval"/>
|
||||
<keyword type="macro" name="AUTOAR_TYPE_EXTRACTOR" link="AutoarExtractor.html#AUTOAR-TYPE-EXTRACTOR:CAPS"/>
|
||||
<keyword type="macro" name="AUTOAR_EXTRACTOR_ERROR" link="AutoarExtractor.html#AUTOAR-EXTRACTOR-ERROR:CAPS"/>
|
||||
<keyword type="enum" name="enum AutoarConflictAction" link="AutoarExtractor.html#AutoarConflictAction"/>
|
||||
<keyword type="struct" name="AutoarExtractor" link="AutoarExtractor.html#AutoarExtractor-struct"/>
|
||||
<keyword type="property" name="The “completed-files” property" link="AutoarExtractor.html#AutoarExtractor--completed-files"/>
|
||||
<keyword type="property" name="The “completed-size” property" link="AutoarExtractor.html#AutoarExtractor--completed-size"/>
|
||||
<keyword type="property" name="The “delete-after-extraction” property" link="AutoarExtractor.html#AutoarExtractor--delete-after-extraction"/>
|
||||
<keyword type="property" name="The “notify-interval” property" link="AutoarExtractor.html#AutoarExtractor--notify-interval"/>
|
||||
<keyword type="property" name="The “output-file” property" link="AutoarExtractor.html#AutoarExtractor--output-file"/>
|
||||
<keyword type="property" name="The “output-is-dest” property" link="AutoarExtractor.html#AutoarExtractor--output-is-dest"/>
|
||||
<keyword type="property" name="The “source-file” property" link="AutoarExtractor.html#AutoarExtractor--source-file"/>
|
||||
<keyword type="property" name="The “total-files” property" link="AutoarExtractor.html#AutoarExtractor--total-files"/>
|
||||
<keyword type="property" name="The “total-size” property" link="AutoarExtractor.html#AutoarExtractor--total-size"/>
|
||||
<keyword type="signal" name="The “cancelled” signal" link="AutoarExtractor.html#AutoarExtractor-cancelled"/>
|
||||
<keyword type="signal" name="The “completed” signal" link="AutoarExtractor.html#AutoarExtractor-completed"/>
|
||||
<keyword type="signal" name="The “conflict” signal" link="AutoarExtractor.html#AutoarExtractor-conflict"/>
|
||||
<keyword type="signal" name="The “decide-destination” signal" link="AutoarExtractor.html#AutoarExtractor-decide-destination"/>
|
||||
<keyword type="signal" name="The “error” signal" link="AutoarExtractor.html#AutoarExtractor-error"/>
|
||||
<keyword type="signal" name="The “progress” signal" link="AutoarExtractor.html#AutoarExtractor-progress"/>
|
||||
<keyword type="signal" name="The “scanned” signal" link="AutoarExtractor.html#AutoarExtractor-scanned"/>
|
||||
<keyword type="function" name="AutoarFormatFunc ()" link="gnome-autoar-autoar-format-filter.html#AutoarFormatFunc"/>
|
||||
<keyword type="function" name="AutoarFilterFunc ()" link="gnome-autoar-autoar-format-filter.html#AutoarFilterFunc"/>
|
||||
<keyword type="function" name="autoar_format_last ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-last"/>
|
||||
<keyword type="function" name="autoar_format_is_valid ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-is-valid"/>
|
||||
<keyword type="function" name="autoar_format_get_mime_type ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-mime-type"/>
|
||||
<keyword type="function" name="autoar_format_get_extension ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-extension"/>
|
||||
<keyword type="function" name="autoar_format_get_description ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-description"/>
|
||||
<keyword type="function" name="autoar_format_get_description_libarchive ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-description-libarchive"/>
|
||||
<keyword type="function" name="autoar_format_get_format_libarchive ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-format-libarchive"/>
|
||||
<keyword type="function" name="autoar_format_get_libarchive_read ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-libarchive-read"/>
|
||||
<keyword type="function" name="autoar_format_get_libarchive_write ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-get-libarchive-write"/>
|
||||
<keyword type="function" name="autoar_filter_last ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-last"/>
|
||||
<keyword type="function" name="autoar_filter_is_valid ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-is-valid"/>
|
||||
<keyword type="function" name="autoar_filter_get_mime_type ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-mime-type"/>
|
||||
<keyword type="function" name="autoar_filter_get_extension ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-extension"/>
|
||||
<keyword type="function" name="autoar_filter_get_description ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-description"/>
|
||||
<keyword type="function" name="autoar_filter_get_description_libarchive ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-description-libarchive"/>
|
||||
<keyword type="function" name="autoar_filter_get_filter_libarchive ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-filter-libarchive"/>
|
||||
<keyword type="function" name="autoar_filter_get_libarchive_read ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-libarchive-read"/>
|
||||
<keyword type="function" name="autoar_filter_get_libarchive_write ()" link="gnome-autoar-autoar-format-filter.html#autoar-filter-get-libarchive-write"/>
|
||||
<keyword type="function" name="autoar_format_filter_get_mime_type ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-mime-type"/>
|
||||
<keyword type="function" name="autoar_format_filter_get_extension ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-extension"/>
|
||||
<keyword type="function" name="autoar_format_filter_get_description ()" link="gnome-autoar-autoar-format-filter.html#autoar-format-filter-get-description"/>
|
||||
<keyword type="enum" name="enum AutoarFormat" link="gnome-autoar-autoar-format-filter.html#AutoarFormat"/>
|
||||
<keyword type="enum" name="enum AutoarFilter" link="gnome-autoar-autoar-format-filter.html#AutoarFilter"/>
|
||||
<keyword type="function" name="autoar_libarchive_quark ()" link="gnome-autoar-autoar-misc.html#autoar-libarchive-quark"/>
|
||||
<keyword type="macro" name="AUTOAR_LIBARCHIVE_ERROR" link="gnome-autoar-autoar-misc.html#AUTOAR-LIBARCHIVE-ERROR:CAPS"/>
|
||||
<keyword type="function" name="autoar_gtk_chooser_simple_new ()" link="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-new"/>
|
||||
<keyword type="function" name="autoar_gtk_chooser_simple_get ()" link="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-simple-get"/>
|
||||
<keyword type="function" name="autoar_gtk_chooser_advanced_new ()" link="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-new"/>
|
||||
<keyword type="function" name="autoar_gtk_chooser_advanced_get ()" link="gnome-autoar-autoar-gtk-chooser.html#autoar-gtk-chooser-advanced-get"/>
|
||||
<keyword type="constant" name="AUTOAR_CONFLICT_SKIP" link="AutoarExtractor.html#AUTOAR-CONFLICT-SKIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_CONFLICT_OVERWRITE" link="AutoarExtractor.html#AUTOAR-CONFLICT-OVERWRITE:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_CONFLICT_CHANGE_DESTINATION" link="AutoarExtractor.html#AUTOAR-CONFLICT-CHANGE-DESTINATION:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_ZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-ZIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_TAR" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-TAR:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_CPIO" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-CPIO:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_7ZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-7ZIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_AR_BSD" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-AR-BSD:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_AR_SVR4" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-AR-SVR4:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_CPIO_NEWC" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-CPIO-NEWC:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_GNUTAR" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-GNUTAR:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_ISO9660" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-ISO9660:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_PAX" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-PAX:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_USTAR" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-USTAR:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FORMAT_XAR" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FORMAT-XAR:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_NONE" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-NONE:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_COMPRESS" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-COMPRESS:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_GZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-GZIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_BZIP2" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-BZIP2:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_XZ" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-XZ:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_LZMA" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-LZMA:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_LZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-LZIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_LZOP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-LZOP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_GRZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-GRZIP:CAPS"/>
|
||||
<keyword type="constant" name="AUTOAR_FILTER_LRZIP" link="gnome-autoar-autoar-format-filter.html#AUTOAR-FILTER-LRZIP:CAPS"/>
|
||||
</functions>
|
||||
</book>
|
After Width: | Height: | Size: 256 B |
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>gnome-autoar Reference Manual: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="next" href="ch01.html" title="gnome-autoar Core">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<div class="book">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">gnome-autoar Reference Manual</p></th></tr></table></div>
|
||||
<div><p class="releaseinfo">
|
||||
gnome-autoar provides functions, widgets, and gschemas for GNOME
|
||||
applications which want to use archives as a convenient method
|
||||
to transfer directories over the internet.
|
||||
</p></div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
<div class="toc"><dl class="toc">
|
||||
<dt><span class="chapter"><a href="ch01.html">gnome-autoar Core</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="AutoarCompressor.html">AutoarCompressor</a></span><span class="refpurpose"> — Automatically compress files</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="AutoarExtractor.html">AutoarExtractor</a></span><span class="refpurpose"> — Automatically extract an archive</span>
|
||||
</dt>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="ch02.html">gnome-autoar Utilities</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-format-filter.html">autoar-format-filter</a></span><span class="refpurpose"> — Utilities for handling archive formats and filters</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-misc.html">autoar-misc</a></span><span class="refpurpose"> — Miscellaneous functions and shared data types used
|
||||
by gnome-autoar</span>
|
||||
</dt>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="ch03.html">gnome-autoar GTK+ Widgets</a></span></dt>
|
||||
<dd><dl><dt>
|
||||
<span class="refentrytitle"><a href="gnome-autoar-autoar-gtk-chooser.html">autoar-gtk-chooser</a></span><span class="refpurpose"> — GTK+ widgets to choose archive format and filter</span>
|
||||
</dt></dl></dd>
|
||||
<dt><span class="chapter"><a href="object-tree.html">Object Hierarchy</a></span></dt>
|
||||
<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
|
||||
<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 395 B |
After Width: | Height: | Size: 262 B |
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Object Hierarchy: gnome-autoar Reference Manual</title>
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<link rel="home" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="up" href="index.html" title="gnome-autoar Reference Manual">
|
||||
<link rel="prev" href="gnome-autoar-autoar-gtk-chooser.html" title="autoar-gtk-chooser">
|
||||
<link rel="next" href="api-index-full.html" title="API Index">
|
||||
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
|
||||
<link rel="stylesheet" href="style.css" type="text/css">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||||
<td width="100%" align="left" class="shortcuts"></td>
|
||||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||||
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
|
||||
<td><a accesskey="p" href="gnome-autoar-autoar-gtk-chooser.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||||
<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||||
</tr></table>
|
||||
<div class="chapter">
|
||||
<div class="titlepage"><div><div><h1 class="title">
|
||||
<a name="object-tree"></a>Object Hierarchy</h1></div></div></div>
|
||||
<pre class="screen">
|
||||
<a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
|
||||
<span class="lineart">├──</span> <a class="link" href="AutoarCompressor.html" title="AutoarCompressor">AutoarCompressor</a>
|
||||
<span class="lineart">╰──</span> <a class="link" href="AutoarExtractor.html" title="AutoarExtractor">AutoarExtractor</a>
|
||||
</pre>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<hr>Generated by GTK-Doc V1.27</div>
|
||||
</body>
|
||||
</html>
|
After Width: | Height: | Size: 373 B |
After Width: | Height: | Size: 261 B |
|
@ -0,0 +1,479 @@
|
|||
body
|
||||
{
|
||||
font-family: cantarell, sans-serif;
|
||||
}
|
||||
.synopsis, .classsynopsis
|
||||
{
|
||||
/* tango:aluminium 1/2 */
|
||||
background: #eeeeec;
|
||||
background: rgba(238, 238, 236, 0.5);
|
||||
border: solid 1px rgb(238, 238, 236);
|
||||
padding: 0.5em;
|
||||
}
|
||||
.programlisting
|
||||
{
|
||||
/* tango:sky blue 0/1 */
|
||||
/* fallback for no rgba support */
|
||||
background: #e6f3ff;
|
||||
border: solid 1px #729fcf;
|
||||
background: rgba(114, 159, 207, 0.1);
|
||||
border: solid 1px rgba(114, 159, 207, 0.2);
|
||||
padding: 0.5em;
|
||||
}
|
||||
.variablelist
|
||||
{
|
||||
padding: 4px;
|
||||
margin-left: 3em;
|
||||
}
|
||||
.variablelist td:first-child
|
||||
{
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
div.gallery-float
|
||||
{
|
||||
float: left;
|
||||
padding: 10px;
|
||||
}
|
||||
div.gallery-float img
|
||||
{
|
||||
border-style: none;
|
||||
}
|
||||
div.gallery-spacer
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
a, a:visited
|
||||
{
|
||||
text-decoration: none;
|
||||
/* tango:sky blue 2 */
|
||||
color: #3465a4;
|
||||
}
|
||||
a:hover
|
||||
{
|
||||
text-decoration: underline;
|
||||
/* tango:sky blue 1 */
|
||||
color: #729fcf;
|
||||
}
|
||||
|
||||
div.informaltable table
|
||||
{
|
||||
border-collapse: separate;
|
||||
border-spacing: 1em 0.3em;
|
||||
border: none;
|
||||
}
|
||||
|
||||
div.informaltable table td, div.informaltable table th
|
||||
{
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.function_type,
|
||||
.variable_type,
|
||||
.property_type,
|
||||
.signal_type,
|
||||
.parameter_name,
|
||||
.struct_member_name,
|
||||
.union_member_name,
|
||||
.define_keyword,
|
||||
.datatype_keyword,
|
||||
.typedef_keyword
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* dim non-primary columns */
|
||||
.c_punctuation,
|
||||
.function_type,
|
||||
.variable_type,
|
||||
.property_type,
|
||||
.signal_type,
|
||||
.define_keyword,
|
||||
.datatype_keyword,
|
||||
.typedef_keyword,
|
||||
.property_flags,
|
||||
.signal_flags,
|
||||
.parameter_annotations,
|
||||
.enum_member_annotations,
|
||||
.struct_member_annotations,
|
||||
.union_member_annotations
|
||||
{
|
||||
color: #888a85;
|
||||
}
|
||||
|
||||
.function_type a,
|
||||
.function_type a:visited,
|
||||
.function_type a:hover,
|
||||
.property_type a,
|
||||
.property_type a:visited,
|
||||
.property_type a:hover,
|
||||
.signal_type a,
|
||||
.signal_type a:visited,
|
||||
.signal_type a:hover,
|
||||
.signal_flags a,
|
||||
.signal_flags a:visited,
|
||||
.signal_flags a:hover
|
||||
{
|
||||
color: #729fcf;
|
||||
}
|
||||
|
||||
td p
|
||||
{
|
||||
margin: 0.25em;
|
||||
}
|
||||
|
||||
div.table table
|
||||
{
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0px;
|
||||
/* tango:aluminium 3 */
|
||||
border: solid 1px #babdb6;
|
||||
}
|
||||
|
||||
div.table table td, div.table table th
|
||||
{
|
||||
/* tango:aluminium 3 */
|
||||
border: solid 1px #babdb6;
|
||||
padding: 3px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
div.table table th
|
||||
{
|
||||
/* tango:aluminium 2 */
|
||||
background-color: #d3d7cf;
|
||||
}
|
||||
|
||||
h4
|
||||
{
|
||||
color: #555753;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
hr
|
||||
{
|
||||
/* tango:aluminium 1 */
|
||||
color: #d3d7cf;
|
||||
background: #d3d7cf;
|
||||
border: none 0px;
|
||||
height: 1px;
|
||||
clear: both;
|
||||
margin: 2.0em 0em 2.0em 0em;
|
||||
}
|
||||
|
||||
dl.toc dt
|
||||
{
|
||||
padding-bottom: 0.25em;
|
||||
}
|
||||
|
||||
dl.toc > dt
|
||||
{
|
||||
padding-top: 0.25em;
|
||||
padding-bottom: 0.25em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dl.toc > dl
|
||||
{
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.parameter
|
||||
{
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.footer
|
||||
{
|
||||
padding-top: 3.5em;
|
||||
/* tango:aluminium 3 */
|
||||
color: #babdb6;
|
||||
text-align: center;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.informalfigure,
|
||||
.figure
|
||||
{
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.informalexample,
|
||||
.example
|
||||
{
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.warning
|
||||
{
|
||||
/* tango:orange 0/1 */
|
||||
background: #ffeed9;
|
||||
background: rgba(252, 175, 62, 0.1);
|
||||
border-color: #ffb04f;
|
||||
border-color: rgba(252, 175, 62, 0.2);
|
||||
}
|
||||
.note
|
||||
{
|
||||
/* tango:chameleon 0/0.5 */
|
||||
background: #d8ffb2;
|
||||
background: rgba(138, 226, 52, 0.1);
|
||||
border-color: #abf562;
|
||||
border-color: rgba(138, 226, 52, 0.2);
|
||||
}
|
||||
div.blockquote
|
||||
{
|
||||
border-color: #eeeeec;
|
||||
}
|
||||
.note, .warning, div.blockquote
|
||||
{
|
||||
padding: 0.5em;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
margin: 2em;
|
||||
}
|
||||
.note p, .warning p
|
||||
{
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div.warning h3.title,
|
||||
div.note h3.title
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
p + div.section
|
||||
{
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
div.refnamediv,
|
||||
div.refsynopsisdiv,
|
||||
div.refsect1,
|
||||
div.refsect2,
|
||||
div.toc,
|
||||
div.section
|
||||
{
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
/* blob links */
|
||||
h2 .extralinks, h3 .extralinks
|
||||
{
|
||||
float: right;
|
||||
/* tango:aluminium 3 */
|
||||
color: #babdb6;
|
||||
font-size: 80%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.lineart
|
||||
{
|
||||
color: #d3d7cf;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.annotation
|
||||
{
|
||||
/* tango:aluminium 5 */
|
||||
color: #555753;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.structfield
|
||||
{
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
acronym,abbr
|
||||
{
|
||||
border-bottom: 1px dotted gray;
|
||||
}
|
||||
|
||||
/* code listings */
|
||||
|
||||
.listing_code .programlisting .normal,
|
||||
.listing_code .programlisting .normal a,
|
||||
.listing_code .programlisting .number,
|
||||
.listing_code .programlisting .cbracket,
|
||||
.listing_code .programlisting .symbol { color: #555753; }
|
||||
.listing_code .programlisting .comment,
|
||||
.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */
|
||||
.listing_code .programlisting .function,
|
||||
.listing_code .programlisting .function a,
|
||||
.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */
|
||||
.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */
|
||||
.listing_code .programlisting .keyword,
|
||||
.listing_code .programlisting .usertype,
|
||||
.listing_code .programlisting .type,
|
||||
.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */
|
||||
|
||||
.listing_frame {
|
||||
/* tango:sky blue 1 */
|
||||
border: solid 1px #729fcf;
|
||||
border: solid 1px rgba(114, 159, 207, 0.2);
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.listing_lines, .listing_code {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.listing_lines {
|
||||
/* tango:sky blue 0.5 */
|
||||
background: #a6c5e3;
|
||||
background: rgba(114, 159, 207, 0.2);
|
||||
/* tango:aluminium 6 */
|
||||
color: #2e3436;
|
||||
}
|
||||
.listing_code {
|
||||
/* tango:sky blue 0 */
|
||||
background: #e6f3ff;
|
||||
background: rgba(114, 159, 207, 0.1);
|
||||
}
|
||||
.listing_code .programlisting {
|
||||
/* override from previous */
|
||||
border: none 0px;
|
||||
padding: 0px;
|
||||
background: none;
|
||||
}
|
||||
.listing_lines pre, .listing_code pre {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
/* these have a <sup> as a first child, but since there are no parent selectors
|
||||
* we can't use that. */
|
||||
a.footnote
|
||||
{
|
||||
position: relative;
|
||||
top: 0em ! important;
|
||||
}
|
||||
/* this is needed so that the local anchors are displayed below the naviagtion */
|
||||
div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
|
||||
{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top:-5em;
|
||||
}
|
||||
/* this seems to be a bug in the xsl style sheets when generating indexes */
|
||||
div.index div.index
|
||||
{
|
||||
top: 0em;
|
||||
}
|
||||
/* make space for the fixed navigation bar and add space at the bottom so that
|
||||
* link targets appear somewhat close to top
|
||||
*/
|
||||
body
|
||||
{
|
||||
padding-top: 2.5em;
|
||||
padding-bottom: 500px;
|
||||
max-width: 60em;
|
||||
}
|
||||
p
|
||||
{
|
||||
max-width: 60em;
|
||||
}
|
||||
/* style and size the navigation bar */
|
||||
table.navigation#top
|
||||
{
|
||||
position: fixed;
|
||||
background: #e2e2e2;
|
||||
border-bottom: solid 1px #babdb6;
|
||||
border-spacing: 5px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
table.navigation#top td
|
||||
{
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
.navigation a, .navigation a:visited
|
||||
{
|
||||
/* tango:sky blue 3 */
|
||||
color: #204a87;
|
||||
}
|
||||
.navigation a:hover
|
||||
{
|
||||
/* tango:sky blue 2 */
|
||||
color: #3465a4;
|
||||
}
|
||||
td.shortcuts
|
||||
{
|
||||
/* tango:sky blue 2 */
|
||||
color: #3465a4;
|
||||
font-size: 80%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
td.shortcuts .dim
|
||||
{
|
||||
color: #babdb6;
|
||||
}
|
||||
.navigation .title
|
||||
{
|
||||
font-size: 80%;
|
||||
max-width: none;
|
||||
margin: 0px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 60em) {
|
||||
/* screen larger than 60em */
|
||||
body { margin: auto; }
|
||||
}
|
||||
@media screen and (max-width: 60em) {
|
||||
/* screen less than 60em */
|
||||
#nav_hierarchy { display: none; }
|
||||
#nav_interfaces { display: none; }
|
||||
#nav_prerequisites { display: none; }
|
||||
#nav_derived_interfaces { display: none; }
|
||||
#nav_implementations { display: none; }
|
||||
#nav_child_properties { display: none; }
|
||||
#nav_style_properties { display: none; }
|
||||
#nav_index { display: none; }
|
||||
#nav_glossary { display: none; }
|
||||
.gallery_image { display: none; }
|
||||
.property_flags { display: none; }
|
||||
.signal_flags { display: none; }
|
||||
.parameter_annotations { display: none; }
|
||||
.enum_member_annotations { display: none; }
|
||||
.struct_member_annotations { display: none; }
|
||||
.union_member_annotations { display: none; }
|
||||
/* now that a column is hidden, optimize space */
|
||||
col.parameters_name { width: auto; }
|
||||
col.parameters_description { width: auto; }
|
||||
col.struct_members_name { width: auto; }
|
||||
col.struct_members_description { width: auto; }
|
||||
col.enum_members_name { width: auto; }
|
||||
col.enum_members_description { width: auto; }
|
||||
col.union_members_name { width: auto; }
|
||||
col.union_members_description { width: auto; }
|
||||
.listing_lines { display: none; }
|
||||
}
|
||||
@media print {
|
||||
table.navigation {
|
||||
visibility: collapse;
|
||||
display: none;
|
||||
}
|
||||
div.titlepage table.navigation {
|
||||
visibility: visible;
|
||||
display: table;
|
||||
background: #e2e2e2;
|
||||
border: solid 1px #babdb6;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 3em;
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 374 B |
After Width: | Height: | Size: 260 B |
|
@ -0,0 +1,80 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-create.h
|
||||
* Automatically create archives in some GNOME programs
|
||||
*
|
||||
* Copyright (C) 2013 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_COMPRESSOR_H
|
||||
#define AUTOAR_COMPRESSOR_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
#include "autoar-format-filter.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define AUTOAR_TYPE_COMPRESSOR autoar_compressor_get_type ()
|
||||
|
||||
G_DECLARE_FINAL_TYPE (AutoarCompressor, autoar_compressor, AUTOAR, COMPRESSOR, GObject)
|
||||
|
||||
/**
|
||||
* AUTOAR_COMPRESSOR_ERROR:
|
||||
*
|
||||
* Error domain for #AutoarCompressor. Not all error occurs in #AutoarCompressor uses
|
||||
* this domain. It is only used for error occurs in #AutoarCompressor itself.
|
||||
* See #AutoarCompressor::error signal for more information.
|
||||
**/
|
||||
#define AUTOAR_COMPRESSOR_ERROR autoar_compressor_quark()
|
||||
|
||||
GQuark autoar_compressor_quark (void);
|
||||
|
||||
AutoarCompressor * autoar_compressor_new (GList *source_files,
|
||||
GFile *output_file,
|
||||
AutoarFormat format,
|
||||
AutoarFilter filter,
|
||||
gboolean create_top_level_directory);
|
||||
|
||||
void autoar_compressor_start (AutoarCompressor *self,
|
||||
GCancellable *cancellable);
|
||||
void autoar_compressor_start_async (AutoarCompressor *self,
|
||||
GCancellable *cancellable);
|
||||
|
||||
GList * autoar_compressor_get_source_files (AutoarCompressor *self);
|
||||
GFile * autoar_compressor_get_output_file (AutoarCompressor *self);
|
||||
AutoarFormat autoar_compressor_get_format (AutoarCompressor *self);
|
||||
AutoarFilter autoar_compressor_get_filter (AutoarCompressor *self);
|
||||
gboolean autoar_compressor_get_create_top_level_directory (AutoarCompressor *self);
|
||||
guint64 autoar_compressor_get_size (AutoarCompressor *self);
|
||||
guint64 autoar_compressor_get_completed_size (AutoarCompressor *self);
|
||||
guint autoar_compressor_get_files (AutoarCompressor *self);
|
||||
guint autoar_compressor_get_completed_files (AutoarCompressor *self);
|
||||
gboolean autoar_compressor_get_output_is_dest (AutoarCompressor *self);
|
||||
gint64 autoar_compressor_get_notify_interval (AutoarCompressor *self);
|
||||
|
||||
void autoar_compressor_set_output_is_dest (AutoarCompressor *self,
|
||||
gboolean output_is_dest);
|
||||
void autoar_compressor_set_notify_interval (AutoarCompressor *self,
|
||||
gint64 notify_interval);
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_COMPRESSOR_H */
|
|
@ -0,0 +1,125 @@
|
|||
|
||||
/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
|
||||
|
||||
#include "autoar-enum-types.h"
|
||||
/* enumerations from "gnome-autoar/autoar-extractor.h" */
|
||||
#include "gnome-autoar/autoar-extractor.h"
|
||||
GType
|
||||
autoar_conflict_action_get_type (void)
|
||||
{
|
||||
static GType type = 0;
|
||||
if (G_UNLIKELY (!type))
|
||||
{
|
||||
static const GEnumValue values[] = {
|
||||
{ AUTOAR_CONFLICT_SKIP,
|
||||
"AUTOAR_CONFLICT_SKIP",
|
||||
"skip" },
|
||||
{ AUTOAR_CONFLICT_OVERWRITE,
|
||||
"AUTOAR_CONFLICT_OVERWRITE",
|
||||
"overwrite" },
|
||||
{ AUTOAR_CONFLICT_CHANGE_DESTINATION,
|
||||
"AUTOAR_CONFLICT_CHANGE_DESTINATION",
|
||||
"change-destination" },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
type = g_enum_register_static ("AutoarConflictAction", values);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
/* enumerations from "gnome-autoar/autoar-format-filter.h" */
|
||||
#include "gnome-autoar/autoar-format-filter.h"
|
||||
GType
|
||||
autoar_format_get_type (void)
|
||||
{
|
||||
static GType type = 0;
|
||||
if (G_UNLIKELY (!type))
|
||||
{
|
||||
static const GEnumValue values[] = {
|
||||
{ AUTOAR_FORMAT_ZIP,
|
||||
"AUTOAR_FORMAT_ZIP",
|
||||
"zip" },
|
||||
{ AUTOAR_FORMAT_TAR,
|
||||
"AUTOAR_FORMAT_TAR",
|
||||
"tar" },
|
||||
{ AUTOAR_FORMAT_CPIO,
|
||||
"AUTOAR_FORMAT_CPIO",
|
||||
"cpio" },
|
||||
{ AUTOAR_FORMAT_7ZIP,
|
||||
"AUTOAR_FORMAT_7ZIP",
|
||||
"7zip" },
|
||||
{ AUTOAR_FORMAT_AR_BSD,
|
||||
"AUTOAR_FORMAT_AR_BSD",
|
||||
"ar-bsd" },
|
||||
{ AUTOAR_FORMAT_AR_SVR4,
|
||||
"AUTOAR_FORMAT_AR_SVR4",
|
||||
"ar-svr4" },
|
||||
{ AUTOAR_FORMAT_CPIO_NEWC,
|
||||
"AUTOAR_FORMAT_CPIO_NEWC",
|
||||
"cpio-newc" },
|
||||
{ AUTOAR_FORMAT_GNUTAR,
|
||||
"AUTOAR_FORMAT_GNUTAR",
|
||||
"gnutar" },
|
||||
{ AUTOAR_FORMAT_ISO9660,
|
||||
"AUTOAR_FORMAT_ISO9660",
|
||||
"iso9660" },
|
||||
{ AUTOAR_FORMAT_PAX,
|
||||
"AUTOAR_FORMAT_PAX",
|
||||
"pax" },
|
||||
{ AUTOAR_FORMAT_USTAR,
|
||||
"AUTOAR_FORMAT_USTAR",
|
||||
"ustar" },
|
||||
{ AUTOAR_FORMAT_XAR,
|
||||
"AUTOAR_FORMAT_XAR",
|
||||
"xar" },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
type = g_enum_register_static ("AutoarFormat", values);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
GType
|
||||
autoar_filter_get_type (void)
|
||||
{
|
||||
static GType type = 0;
|
||||
if (G_UNLIKELY (!type))
|
||||
{
|
||||
static const GEnumValue values[] = {
|
||||
{ AUTOAR_FILTER_NONE,
|
||||
"AUTOAR_FILTER_NONE",
|
||||
"none" },
|
||||
{ AUTOAR_FILTER_COMPRESS,
|
||||
"AUTOAR_FILTER_COMPRESS",
|
||||
"compress" },
|
||||
{ AUTOAR_FILTER_GZIP,
|
||||
"AUTOAR_FILTER_GZIP",
|
||||
"gzip" },
|
||||
{ AUTOAR_FILTER_BZIP2,
|
||||
"AUTOAR_FILTER_BZIP2",
|
||||
"bzip2" },
|
||||
{ AUTOAR_FILTER_XZ,
|
||||
"AUTOAR_FILTER_XZ",
|
||||
"xz" },
|
||||
{ AUTOAR_FILTER_LZMA,
|
||||
"AUTOAR_FILTER_LZMA",
|
||||
"lzma" },
|
||||
{ AUTOAR_FILTER_LZIP,
|
||||
"AUTOAR_FILTER_LZIP",
|
||||
"lzip" },
|
||||
{ AUTOAR_FILTER_LZOP,
|
||||
"AUTOAR_FILTER_LZOP",
|
||||
"lzop" },
|
||||
{ AUTOAR_FILTER_GRZIP,
|
||||
"AUTOAR_FILTER_GRZIP",
|
||||
"grzip" },
|
||||
{ AUTOAR_FILTER_LRZIP,
|
||||
"AUTOAR_FILTER_LRZIP",
|
||||
"lrzip" },
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
type = g_enum_register_static ("AutoarFilter", values);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Generated data ends here */
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
/*** BEGIN file-header ***/
|
||||
#include "autoar-enum-types.h"
|
||||
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
/* enumerations from "@filename@" */
|
||||
#include "@filename@"
|
||||
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
GType
|
||||
@enum_name@_get_type (void)
|
||||
{
|
||||
static GType type = 0;
|
||||
if (G_UNLIKELY (!type))
|
||||
{
|
||||
static const G@Type@Value values[] = {
|
||||
/*** END value-header ***/
|
||||
|
||||
/*** BEGIN value-production ***/
|
||||
{ @VALUENAME@,
|
||||
"@VALUENAME@",
|
||||
"@valuenick@" },
|
||||
/*** END value-production ***/
|
||||
|
||||
/*** BEGIN value-tail ***/
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
type = g_@type@_register_static ("@EnumName@", values);
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
/*** END value-tail ***/
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
|
||||
|
||||
#ifndef AUTOAR_ENUM_TYPES_H
|
||||
#define AUTOAR_ENUM_TYPES_H
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
/* Enumerations from "gnome-autoar/autoar-extractor.h" */
|
||||
#define AUTOAR_TYPE_CONFLICT_ACTION (autoar_conflict_action_get_type ())
|
||||
GType autoar_conflict_action_get_type (void) G_GNUC_CONST;
|
||||
/* Enumerations from "gnome-autoar/autoar-format-filter.h" */
|
||||
#define AUTOAR_TYPE_FORMAT (autoar_format_get_type ())
|
||||
GType autoar_format_get_type (void) G_GNUC_CONST;
|
||||
#define AUTOAR_TYPE_FILTER (autoar_filter_get_type ())
|
||||
GType autoar_filter_get_type (void) G_GNUC_CONST;
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_ENUM_TYPES_H */
|
||||
|
||||
/* Generated data ends here */
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/*** BEGIN file-header ***/
|
||||
#ifndef AUTOAR_ENUM_TYPES_H
|
||||
#define AUTOAR_ENUM_TYPES_H
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
/* Enumerations from "@filename@" */
|
||||
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN enumeration-production ***/
|
||||
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
|
||||
GType @enum_name@_get_type (void) G_GNUC_CONST;
|
||||
|
||||
/*** END enumeration-production ***/
|
||||
|
||||
/*** BEGIN file-tail ***/
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_ENUM_TYPES_H */
|
||||
/*** END file-tail ***/
|
|
@ -0,0 +1,82 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-extractor.h
|
||||
* Automatically extract archives in some GNOME programs
|
||||
*
|
||||
* Copyright (C) 2013 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_EXTRACTOR_H
|
||||
#define AUTOAR_EXTRACTOR_H
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define AUTOAR_TYPE_EXTRACTOR autoar_extractor_get_type ()
|
||||
|
||||
G_DECLARE_FINAL_TYPE (AutoarExtractor, autoar_extractor, AUTOAR, EXTRACTOR, GObject)
|
||||
|
||||
/**
|
||||
* AUTOAR_EXTRACT_ERROR:
|
||||
*
|
||||
* Error domain for #AutoarExtractor. Not all error occurs in #AutoarExtractor uses
|
||||
* this domain. It is only used for error occurs in #AutoarExtractor itself.
|
||||
* See #AutoarExtractor::error signal for more information.
|
||||
**/
|
||||
#define AUTOAR_EXTRACTOR_ERROR autoar_extractor_quark()
|
||||
|
||||
GQuark autoar_extractor_quark (void);
|
||||
|
||||
AutoarExtractor *autoar_extractor_new (GFile *source_file,
|
||||
GFile *output_file);
|
||||
|
||||
void autoar_extractor_start (AutoarExtractor *self,
|
||||
GCancellable *cancellable);
|
||||
void autoar_extractor_start_async (AutoarExtractor *self,
|
||||
GCancellable *cancellable);
|
||||
|
||||
GFile *autoar_extractor_get_source_file (AutoarExtractor *self);
|
||||
GFile *autoar_extractor_get_output_file (AutoarExtractor *self);
|
||||
guint64 autoar_extractor_get_total_size (AutoarExtractor *self);
|
||||
guint64 autoar_extractor_get_completed_size (AutoarExtractor *self);
|
||||
guint autoar_extractor_get_total_files (AutoarExtractor *self);
|
||||
guint autoar_extractor_get_completed_files (AutoarExtractor *self);
|
||||
gboolean autoar_extractor_get_output_is_dest (AutoarExtractor *self);
|
||||
gboolean autoar_extractor_get_delete_after_extraction (AutoarExtractor *self);
|
||||
gint64 autoar_extractor_get_notify_interval (AutoarExtractor *self);
|
||||
|
||||
void autoar_extractor_set_output_is_dest (AutoarExtractor *self,
|
||||
gboolean output_is_dest);
|
||||
void autoar_extractor_set_delete_after_extraction (AutoarExtractor *self,
|
||||
gboolean delete_if_succeed);
|
||||
void autoar_extractor_set_notify_interval (AutoarExtractor *self,
|
||||
gint64 notify_interval);
|
||||
|
||||
typedef enum {
|
||||
AUTOAR_CONFLICT_SKIP = 0,
|
||||
AUTOAR_CONFLICT_OVERWRITE,
|
||||
AUTOAR_CONFLICT_CHANGE_DESTINATION
|
||||
} AutoarConflictAction;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_EXTRACTOR_H */
|
|
@ -0,0 +1,575 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-format-filter.c
|
||||
* Functions related to archive formats and filters
|
||||
*
|
||||
* Copyright (C) 2013 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "autoar-format-filter.h"
|
||||
|
||||
#include <archive.h>
|
||||
#include <gio/gio.h>
|
||||
#include <glib.h>
|
||||
|
||||
/**
|
||||
* SECTION:autoar-format-filter
|
||||
* @Short_description: Utilities for handling archive formats and filters
|
||||
* @Title: autoar-format-filter
|
||||
* @Include: gnome-autoar/autoar.h
|
||||
*
|
||||
* autoar-format-filter is a collection of functions providing information
|
||||
* of archive formats and filters.
|
||||
**/
|
||||
|
||||
typedef struct _AutoarFormatDescription AutoarFormatDescription;
|
||||
typedef struct _AutoarFilterDescription AutoarFilterDescription;
|
||||
|
||||
struct _AutoarFormatDescription
|
||||
{
|
||||
AutoarFormat format;
|
||||
int libarchive_format;
|
||||
char *extension;
|
||||
char *keyword;
|
||||
char *mime_type;
|
||||
char *description;
|
||||
AutoarFormatFunc libarchive_read;
|
||||
AutoarFormatFunc libarchive_write;
|
||||
};
|
||||
|
||||
struct _AutoarFilterDescription
|
||||
{
|
||||
AutoarFilter filter;
|
||||
int libarchive_filter;
|
||||
char *extension;
|
||||
char *keyword;
|
||||
char *mime_type;
|
||||
char *description;
|
||||
AutoarFilterFunc libarchive_read;
|
||||
AutoarFilterFunc libarchive_write;
|
||||
};
|
||||
|
||||
static AutoarFormatDescription autoar_format_description[] = {
|
||||
{ AUTOAR_FORMAT_ZIP, ARCHIVE_FORMAT_ZIP, "zip", "zip",
|
||||
"application/zip", "Zip archive",
|
||||
archive_read_support_format_zip,
|
||||
archive_write_set_format_zip },
|
||||
|
||||
{ AUTOAR_FORMAT_TAR, ARCHIVE_FORMAT_TAR_PAX_RESTRICTED, "tar", "tar",
|
||||
"application/x-tar", "Tar archive (restricted pax)",
|
||||
archive_read_support_format_tar,
|
||||
archive_write_set_format_pax_restricted },
|
||||
|
||||
{ AUTOAR_FORMAT_CPIO, ARCHIVE_FORMAT_CPIO_POSIX, "cpio", "cpio",
|
||||
"application/x-cpio", "CPIO archive",
|
||||
archive_read_support_format_cpio,
|
||||
archive_write_set_format_cpio },
|
||||
|
||||
{ AUTOAR_FORMAT_7ZIP, ARCHIVE_FORMAT_7ZIP, "7z", "7z-compressed",
|
||||
"application/x-7z-compressed", "7-zip archive",
|
||||
archive_read_support_format_7zip,
|
||||
archive_write_set_format_7zip },
|
||||
|
||||
{ AUTOAR_FORMAT_AR_BSD, ARCHIVE_FORMAT_AR_BSD, "a", "ar",
|
||||
"application/x-ar", "AR archive (BSD)",
|
||||
archive_read_support_format_ar,
|
||||
archive_write_set_format_ar_bsd },
|
||||
|
||||
{ AUTOAR_FORMAT_AR_SVR4, ARCHIVE_FORMAT_AR_GNU, "a", "ar",
|
||||
"application/x-ar", "AR archive (SVR4)",
|
||||
archive_read_support_format_ar,
|
||||
archive_write_set_format_ar_svr4 },
|
||||
|
||||
{ AUTOAR_FORMAT_CPIO_NEWC, ARCHIVE_FORMAT_CPIO_SVR4_NOCRC, "cpio", "sv4cpio",
|
||||
"application/x-sv4cpio", "SV4 CPIO archive",
|
||||
archive_read_support_format_cpio,
|
||||
archive_write_set_format_cpio_newc },
|
||||
|
||||
{ AUTOAR_FORMAT_GNUTAR, ARCHIVE_FORMAT_TAR_GNUTAR, "tar", "tar",
|
||||
"application/x-tar", "Tar archive (GNU tar)",
|
||||
archive_read_support_format_gnutar,
|
||||
archive_write_set_format_gnutar },
|
||||
|
||||
{ AUTOAR_FORMAT_ISO9660, ARCHIVE_FORMAT_ISO9660, "iso", "cd-image",
|
||||
"application/x-cd-image", "Raw CD Image",
|
||||
archive_read_support_format_iso9660,
|
||||
archive_write_set_format_iso9660 },
|
||||
|
||||
{ AUTOAR_FORMAT_PAX, ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE, "tar", "tar",
|
||||
"application/x-tar", "Tar archive (pax)",
|
||||
archive_read_support_format_tar,
|
||||
archive_write_set_format_pax },
|
||||
|
||||
{ AUTOAR_FORMAT_USTAR, ARCHIVE_FORMAT_TAR_USTAR, "tar", "tar",
|
||||
"application/x-tar", "Tar archive (ustar)",
|
||||
archive_read_support_format_tar,
|
||||
archive_write_set_format_ustar },
|
||||
|
||||
{ AUTOAR_FORMAT_XAR, ARCHIVE_FORMAT_XAR, "xar", "xar",
|
||||
"application/x-xar", "Xar archive",
|
||||
archive_read_support_format_xar,
|
||||
archive_write_set_format_xar }
|
||||
};
|
||||
|
||||
static AutoarFilterDescription autoar_filter_description[] = {
|
||||
{ AUTOAR_FILTER_NONE, ARCHIVE_FILTER_NONE, "", "",
|
||||
"", "None",
|
||||
archive_read_support_filter_none,
|
||||
archive_write_add_filter_none },
|
||||
|
||||
{ AUTOAR_FILTER_COMPRESS, ARCHIVE_FILTER_COMPRESS, "Z", "compress",
|
||||
"application/x-compress", "UNIX-compressed",
|
||||
archive_read_support_filter_compress,
|
||||
archive_write_add_filter_compress },
|
||||
|
||||
{ AUTOAR_FILTER_GZIP, ARCHIVE_FILTER_GZIP, "gz", "gzip",
|
||||
"application/gzip", "Gzip",
|
||||
archive_read_support_filter_gzip,
|
||||
archive_write_add_filter_gzip },
|
||||
|
||||
{ AUTOAR_FILTER_BZIP2, ARCHIVE_FILTER_BZIP2, "bz2", "bzip",
|
||||
"application/x-bzip", "Bzip2",
|
||||
archive_read_support_filter_bzip2,
|
||||
archive_write_add_filter_bzip2 },
|
||||
|
||||
{ AUTOAR_FILTER_XZ, ARCHIVE_FILTER_XZ, "xz", "xz",
|
||||
"application/x-xz", "XZ",
|
||||
archive_read_support_filter_xz,
|
||||
archive_write_add_filter_xz },
|
||||
|
||||
{ AUTOAR_FILTER_LZMA, ARCHIVE_FILTER_LZMA, "lzma", "lzma",
|
||||
"application/x-lzma", "LZMA",
|
||||
archive_read_support_filter_lzma,
|
||||
archive_write_add_filter_lzma },
|
||||
|
||||
{ AUTOAR_FILTER_LZIP, ARCHIVE_FILTER_LZIP, "lz", "lzip",
|
||||
"application/x-lzip", "Lzip",
|
||||
archive_read_support_filter_lzip,
|
||||
archive_write_add_filter_lzip },
|
||||
|
||||
{ AUTOAR_FILTER_LZOP, ARCHIVE_FILTER_LZOP, "lzo", "lzop",
|
||||
"application/x-lzop", "LZO",
|
||||
archive_read_support_filter_lzop,
|
||||
archive_write_add_filter_lzop },
|
||||
|
||||
{ AUTOAR_FILTER_GRZIP, ARCHIVE_FILTER_GRZIP, "grz", "grzip",
|
||||
"application/x-grzip", "GRZip",
|
||||
archive_read_support_filter_grzip,
|
||||
archive_write_add_filter_grzip },
|
||||
|
||||
{ AUTOAR_FILTER_LRZIP, ARCHIVE_FILTER_LRZIP, "lrz", "lrzip",
|
||||
"application/x-lrzip", "Long Range ZIP (lrzip)",
|
||||
archive_read_support_filter_lrzip,
|
||||
archive_write_add_filter_lrzip }
|
||||
};
|
||||
|
||||
/**
|
||||
* autoar_format_last:
|
||||
*
|
||||
* Gets the maximal allowed values of #AutoarFormat
|
||||
*
|
||||
* Returns: maximal allowed values of #AutoarFormat
|
||||
**/
|
||||
int
|
||||
autoar_format_last (void)
|
||||
{
|
||||
return AUTOAR_FORMAT_LAST;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_is_valid:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Checks whether an #AutoarFormat is valid.
|
||||
*
|
||||
* Returns: %TRUE if the value of @format is valid
|
||||
**/
|
||||
gboolean
|
||||
autoar_format_is_valid (AutoarFormat format)
|
||||
{
|
||||
return (format > 0 && format < AUTOAR_FORMAT_LAST);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_mime_type:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets the MIME type of the format from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): an MIME type
|
||||
**/
|
||||
const char*
|
||||
autoar_format_get_mime_type (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format) , NULL);
|
||||
return autoar_format_description[format - 1].mime_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_extension:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets the file name extension of the format from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): a file name extension
|
||||
**/
|
||||
const char*
|
||||
autoar_format_get_extension (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
return autoar_format_description[format - 1].extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_description:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets description of the format from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): description about the format
|
||||
**/
|
||||
const char*
|
||||
autoar_format_get_description (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
return autoar_format_description[format - 1].description;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_format_libarchive:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets the format code used by libarchive. You can use the return value
|
||||
* as the argument for archive_read_support_format_by_code() and
|
||||
* archive_write_set_format(). However, some format cannot be set using
|
||||
* these two functions because of problems inside libarchive. Use
|
||||
* autoar_format_get_libarchive_read() and
|
||||
* autoar_format_get_libarchive_write() to get the function pointer
|
||||
* is the more reliable way to set format on the archive object.
|
||||
*
|
||||
* Returns: an integer
|
||||
**/
|
||||
int
|
||||
autoar_format_get_format_libarchive (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), -1);
|
||||
return autoar_format_description[format - 1].libarchive_format;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_description_libarchive:
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets description of the format from libarchive. This function creates
|
||||
* and destroys an archive object in order to get the description string.
|
||||
*
|
||||
* Returns: (transfer full): description about the format. Free the returned
|
||||
* string with g_free().
|
||||
**/
|
||||
gchar*
|
||||
autoar_format_get_description_libarchive (AutoarFormat format)
|
||||
{
|
||||
struct archive* a;
|
||||
gchar *str;
|
||||
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
|
||||
a = archive_write_new ();
|
||||
archive_write_set_format (a, autoar_format_description[format - 1].libarchive_format);
|
||||
str = g_strdup (archive_format_name (a));
|
||||
archive_write_free (a);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_libarchive_read: (skip)
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets the function used to set format on the object returned by
|
||||
* archive_read_new().
|
||||
*
|
||||
* Returns: function pointer to the setter function provided by libarchive
|
||||
**/
|
||||
AutoarFormatFunc
|
||||
autoar_format_get_libarchive_read (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
return autoar_format_description[format - 1].libarchive_read;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_get_libarchive_write: (skip)
|
||||
* @format: an #AutoarFormat
|
||||
*
|
||||
* Gets the function used to set format on the object returned by
|
||||
* archive_write_new().
|
||||
*
|
||||
* Returns: function pointer to the setter function provided by libarchive
|
||||
**/
|
||||
AutoarFormatFunc
|
||||
autoar_format_get_libarchive_write (AutoarFormat format)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
return autoar_format_description[format - 1].libarchive_write;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_last:
|
||||
*
|
||||
* Gets the maximal allowed values of #AutoarFilter
|
||||
*
|
||||
* Returns: maximal allowed values of #AutoarFilter
|
||||
**/
|
||||
int
|
||||
autoar_filter_last (void)
|
||||
{
|
||||
return AUTOAR_FILTER_LAST;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_is_valid:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Checks whether an #AutoarFilter is valid.
|
||||
*
|
||||
* Returns: %TRUE if the value of @filter is valid
|
||||
**/
|
||||
gboolean
|
||||
autoar_filter_is_valid (AutoarFilter filter)
|
||||
{
|
||||
return (filter > 0 && filter < AUTOAR_FILTER_LAST);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_mime_type:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the MIME type of the filter from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): an MIME type
|
||||
**/
|
||||
const char*
|
||||
autoar_filter_get_mime_type (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
return autoar_filter_description[filter - 1].mime_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_extension:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the file name extension of the filter from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): a file name extension
|
||||
**/
|
||||
const char*
|
||||
autoar_filter_get_extension (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
return autoar_filter_description[filter - 1].extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_description:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets description of the filter from the internal static data.
|
||||
*
|
||||
* Returns: (transfer none): description about the filter
|
||||
**/
|
||||
const char*
|
||||
autoar_filter_get_description (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
return autoar_filter_description[filter - 1].description;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_filter_libarchive:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the filter code used by libarchive. You can use the return value
|
||||
* as the argument for archive_write_add_filter().
|
||||
*
|
||||
* Returns: an integer
|
||||
**/
|
||||
int
|
||||
autoar_filter_get_filter_libarchive (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), -1);
|
||||
return autoar_filter_description[filter - 1].libarchive_filter;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_description_libarchive:
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets description of the filter from libarchive. This function creates
|
||||
* and destroys an archive object in order to get the description string.
|
||||
*
|
||||
* Returns: (transfer full): description about the filter. Free the returned
|
||||
* string with g_free().
|
||||
**/
|
||||
gchar*
|
||||
autoar_filter_get_description_libarchive (AutoarFilter filter)
|
||||
{
|
||||
struct archive *a;
|
||||
gchar *str;
|
||||
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
|
||||
a = archive_write_new ();
|
||||
archive_write_add_filter (a, autoar_filter_description[filter - 1].libarchive_filter);
|
||||
str = g_strdup (archive_filter_name (a, 0));
|
||||
archive_write_free (a);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_libarchive_read: (skip)
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the function used to add filter on the object returned by
|
||||
* archive_read_new().
|
||||
*
|
||||
* Returns: function pointer to the setter function provided by libarchive
|
||||
**/
|
||||
AutoarFilterFunc
|
||||
autoar_filter_get_libarchive_read (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
return autoar_filter_description[filter - 1].libarchive_read;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_filter_get_libarchive_write: (skip)
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the function used to add filter on the object returned by
|
||||
* archive_write_new().
|
||||
*
|
||||
* Returns: function pointer to the setter function provided by libarchive
|
||||
**/
|
||||
AutoarFilterFunc
|
||||
autoar_filter_get_libarchive_write (AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
return autoar_filter_description[filter - 1].libarchive_write;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_filter_get_mime_type:
|
||||
* @format: an #AutoarFormat
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the MIME type for an archive @format compressed by
|
||||
* @filter. This function always succeed, but it is not guaranteed
|
||||
* that the returned MIME type exists and can be recognized by applications.
|
||||
* Some combination of format and filter seldom exists in application,
|
||||
* so this function can only generate the string based on some
|
||||
* non-standard rules.
|
||||
*
|
||||
* Returns: (transfer full): an MIME type. Free the returned
|
||||
* string with g_free().
|
||||
**/
|
||||
gchar*
|
||||
autoar_format_filter_get_mime_type (AutoarFormat format,
|
||||
AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
|
||||
switch (filter) {
|
||||
case AUTOAR_FILTER_NONE:
|
||||
return g_strdup (autoar_format_description[format - 1].mime_type);
|
||||
case AUTOAR_FILTER_COMPRESS:
|
||||
return g_strconcat ("application/x-",
|
||||
autoar_format_description[format - 1].keyword,
|
||||
"z", NULL);
|
||||
case AUTOAR_FILTER_GZIP:
|
||||
return g_strconcat ("application/x-compressed-",
|
||||
autoar_format_description[format - 1].keyword,
|
||||
NULL);
|
||||
default:
|
||||
return g_strconcat ("application/x-",
|
||||
autoar_filter_description[filter - 1].keyword,
|
||||
"-compressed-",
|
||||
autoar_format_description[format - 1].keyword,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_filter_get_extension:
|
||||
* @format: an #AutoarFormat
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the file name extension for an archive @format compressed by
|
||||
* @filter. The first character of the returned string is always '.'
|
||||
*
|
||||
* Returns: (transfer full): a file name extension. Free the returned string
|
||||
* with g_free().
|
||||
**/
|
||||
gchar*
|
||||
autoar_format_filter_get_extension (AutoarFormat format,
|
||||
AutoarFilter filter)
|
||||
{
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
|
||||
return g_strconcat (".",
|
||||
autoar_format_description[format - 1].extension,
|
||||
autoar_filter_description[filter - 1].extension[0] ? "." : "",
|
||||
autoar_filter_description[filter - 1].extension,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_format_filter_get_description:
|
||||
* @format: an #AutoarFormat
|
||||
* @filter: an #AutoarFilter
|
||||
*
|
||||
* Gets the description for an archive @format compressed by
|
||||
* @filter using #GContentType and autoar_format_filter_get_mime_type().
|
||||
*
|
||||
* Returns: (transfer full): description about the archive. Free the returned
|
||||
* string with g_free().
|
||||
**/
|
||||
gchar*
|
||||
autoar_format_filter_get_description (AutoarFormat format,
|
||||
AutoarFilter filter)
|
||||
{
|
||||
gchar *mime_type;
|
||||
gchar *description;
|
||||
|
||||
g_return_val_if_fail (autoar_format_is_valid (format), NULL);
|
||||
g_return_val_if_fail (autoar_filter_is_valid (filter), NULL);
|
||||
|
||||
mime_type = autoar_format_filter_get_mime_type (format, filter);
|
||||
description = g_content_type_get_description (mime_type);
|
||||
g_free (mime_type);
|
||||
|
||||
return description;
|
||||
}
|
|
@ -0,0 +1,150 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-format-filter.h
|
||||
* Functions related to archive formats and filters
|
||||
*
|
||||
* Copyright (C) 2013 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_FORMAT_H
|
||||
#define AUTOAR_FORMAT_H
|
||||
|
||||
#include <archive.h>
|
||||
#include <glib.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* AutoarFormat:
|
||||
* @AUTOAR_FORMAT_ZIP: %ARCHIVE_FORMAT_ZIP: Zip archive
|
||||
* @AUTOAR_FORMAT_TAR: %ARCHIVE_FORMAT_TAR_PAX_RESTRICTED: Tar archive, use
|
||||
* ustar format is possible. If there are extended headers which cannot be
|
||||
* represented in the ustar format, libarchive will use pax interchage format
|
||||
* instead.
|
||||
* @AUTOAR_FORMAT_CPIO: %ARCHIVE_FORMAT_CPIO_POSIX: CPIO archive, POSIX
|
||||
* standard cpio interchage format.
|
||||
* @AUTOAR_FORMAT_7ZIP: %ARCHIVE_FORMAT_7ZIP: 7-zip archive
|
||||
* @AUTOAR_FORMAT_AR_BSD: %ARCHIVE_FORMAT_AR_BSD: BSD variant of Unix archive
|
||||
* format. This format does not support storing directories.
|
||||
* @AUTOAR_FORMAT_AR_SVR4: %ARCHIVE_FORMAT_AR_GNU: GNU/SVR4 variant of Unix
|
||||
* archive format. This format does not support storing directories.
|
||||
* @AUTOAR_FORMAT_CPIO_NEWC: %ARCHIVE_FORMAT_CPIO_SVR4_NOCRC: CPIO archive,
|
||||
* SVR4 non-CRC variant
|
||||
* @AUTOAR_FORMAT_GNUTAR: %ARCHIVE_FORMAT_TAR_GNUTAR: Tar archive, support
|
||||
* most popular GNU extensions.
|
||||
* @AUTOAR_FORMAT_ISO9660: %ARCHIVE_FORMAT_ISO9660: Raw CD image
|
||||
* @AUTOAR_FORMAT_PAX: %ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE: Tar archive, use
|
||||
* pax interchage format
|
||||
* @AUTOAR_FORMAT_USTAR: %ARCHIVE_FORMAT_TAR_USTAR: Tar archive, use old
|
||||
* ustar format
|
||||
* @AUTOAR_FORMAT_XAR: %ARCHIVE_FORMAT_XAR: Xar archive
|
||||
*
|
||||
* This is a non-negative number which represents formats supported by
|
||||
* libarchive. A libarchive format is a file format which can store many
|
||||
* files as a archive file.
|
||||
**/
|
||||
typedef enum {
|
||||
/*< private >*/
|
||||
AUTOAR_FORMAT_0, /*< skip >*/
|
||||
/*< public >*/
|
||||
AUTOAR_FORMAT_ZIP = 1, /* .zip */
|
||||
AUTOAR_FORMAT_TAR, /* .tar, pax_restricted */
|
||||
AUTOAR_FORMAT_CPIO, /* .cpio, odc */
|
||||
AUTOAR_FORMAT_7ZIP, /* .7z */
|
||||
AUTOAR_FORMAT_AR_BSD, /* .a */
|
||||
AUTOAR_FORMAT_AR_SVR4, /* .a */
|
||||
AUTOAR_FORMAT_CPIO_NEWC, /* .cpio, newc */
|
||||
AUTOAR_FORMAT_GNUTAR, /* .tar, gnutar */
|
||||
AUTOAR_FORMAT_ISO9660, /* .iso */
|
||||
AUTOAR_FORMAT_PAX, /* .tar, pax */
|
||||
AUTOAR_FORMAT_USTAR, /* .tar, ustar */
|
||||
AUTOAR_FORMAT_XAR, /* .xar, xar */
|
||||
/*< private >*/
|
||||
AUTOAR_FORMAT_LAST /*< skip >*/
|
||||
} AutoarFormat;
|
||||
|
||||
/**
|
||||
* AutoarFilter:
|
||||
* @AUTOAR_FILTER_NONE: %ARCHIVE_FILTER_NONE: No filter
|
||||
* @AUTOAR_FILTER_COMPRESS: %ARCHIVE_FILTER_COMPRESS: UNIX-compressed
|
||||
* @AUTOAR_FILTER_GZIP: %ARCHIVE_FILTER_GZIP: Gzip
|
||||
* @AUTOAR_FILTER_BZIP2: %ARCHIVE_FILTER_BZIP2: Bzip2
|
||||
* @AUTOAR_FILTER_XZ: %ARCHIVE_FILTER_XZ: XZ
|
||||
* @AUTOAR_FILTER_LZMA: %ARCHIVE_FILTER_LZMA: LZMA
|
||||
* @AUTOAR_FILTER_LZIP: %ARCHIVE_FILTER_LZIP: Lzip
|
||||
* @AUTOAR_FILTER_LZOP: %ARCHIVE_FILTER_LZOP: LZO
|
||||
* @AUTOAR_FILTER_GRZIP: %ARCHIVE_FILTER_GRZIP: GRZip
|
||||
* @AUTOAR_FILTER_LRZIP: %ARCHIVE_FILTER_LRZIP: Long Range ZIP (lrzip)
|
||||
*
|
||||
* This is a non-negative number which represents filters supported by
|
||||
* libarchive. A libarchive filter is a filter which can convert a
|
||||
* regular file into a compressed file.
|
||||
**/
|
||||
typedef enum {
|
||||
/*< private >*/
|
||||
AUTOAR_FILTER_0, /*< skip >*/
|
||||
/*< public >*/
|
||||
AUTOAR_FILTER_NONE = 1,
|
||||
AUTOAR_FILTER_COMPRESS, /* .Z */
|
||||
AUTOAR_FILTER_GZIP, /* .gz */
|
||||
AUTOAR_FILTER_BZIP2, /* .bz2 */
|
||||
AUTOAR_FILTER_XZ, /* .xz */
|
||||
AUTOAR_FILTER_LZMA, /* .lzma */
|
||||
AUTOAR_FILTER_LZIP, /* .lz */
|
||||
AUTOAR_FILTER_LZOP, /* .lzo */
|
||||
AUTOAR_FILTER_GRZIP, /* .grz */
|
||||
AUTOAR_FILTER_LRZIP, /* .lrz */
|
||||
/*< private >*/
|
||||
AUTOAR_FILTER_LAST /*< skip >*/
|
||||
} AutoarFilter;
|
||||
|
||||
typedef int (*AutoarFormatFunc) (struct archive *a);
|
||||
typedef int (*AutoarFilterFunc) (struct archive *a);
|
||||
|
||||
int autoar_format_last (void);
|
||||
gboolean autoar_format_is_valid (AutoarFormat format);
|
||||
const char *autoar_format_get_mime_type (AutoarFormat format);
|
||||
const char *autoar_format_get_extension (AutoarFormat format);
|
||||
const char *autoar_format_get_description (AutoarFormat format);
|
||||
gchar *autoar_format_get_description_libarchive (AutoarFormat format);
|
||||
int autoar_format_get_format_libarchive (AutoarFormat format);
|
||||
AutoarFormatFunc autoar_format_get_libarchive_read (AutoarFormat format);
|
||||
AutoarFormatFunc autoar_format_get_libarchive_write (AutoarFormat format);
|
||||
|
||||
int autoar_filter_last (void);
|
||||
gboolean autoar_filter_is_valid (AutoarFilter filter);
|
||||
const char *autoar_filter_get_mime_type (AutoarFilter filter);
|
||||
const char *autoar_filter_get_extension (AutoarFilter filter);
|
||||
const char *autoar_filter_get_description (AutoarFilter filter);
|
||||
gchar *autoar_filter_get_description_libarchive (AutoarFilter filter);
|
||||
int autoar_filter_get_filter_libarchive (AutoarFilter filter);
|
||||
AutoarFilterFunc autoar_filter_get_libarchive_read (AutoarFilter filter);
|
||||
AutoarFilterFunc autoar_filter_get_libarchive_write (AutoarFilter filter);
|
||||
|
||||
gchar *autoar_format_filter_get_mime_type (AutoarFormat format,
|
||||
AutoarFilter filter);
|
||||
gchar *autoar_format_filter_get_extension (AutoarFormat format,
|
||||
AutoarFilter filter);
|
||||
gchar *autoar_format_filter_get_description (AutoarFormat format,
|
||||
AutoarFilter filter);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_PREF_H */
|
|
@ -0,0 +1,618 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-gtk-chooser.c
|
||||
* GTK+ widgets to choose archive format and filter
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "autoar-gtk-chooser.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib/gi18n.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
/**
|
||||
* SECTION:autoar-gtk-chooser
|
||||
* @Short_description: GTK+ widgets to choose archive format and filter
|
||||
* @Title: autoar-gtk-chooser
|
||||
* @Include: gnome-autoar/autoar-gtk.h
|
||||
*
|
||||
* autoar-gtk-chooser contains two widgets for users to choose preferred
|
||||
* archive format and filter.
|
||||
**/
|
||||
|
||||
/* autoar_gtk_chooser_simple */
|
||||
|
||||
enum
|
||||
{
|
||||
SIMPLE_COL_FORMAT,
|
||||
SIMPLE_COL_FILTER,
|
||||
SIMPLE_COL_DESCRIPTION,
|
||||
N_SIMPLE_COLS
|
||||
};
|
||||
|
||||
static char*
|
||||
format_filter_full_description (AutoarFormat format,
|
||||
AutoarFilter filter)
|
||||
{
|
||||
char *description, *extension, *full_description;
|
||||
|
||||
description = autoar_format_filter_get_description (format, filter);
|
||||
extension = autoar_format_filter_get_extension (format, filter);
|
||||
full_description = g_strdup_printf ("%s (*%s)", description, extension);
|
||||
|
||||
g_free (description);
|
||||
g_free (extension);
|
||||
|
||||
return full_description;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
simple_row_separator_cb (GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
void *data)
|
||||
{
|
||||
char *description, first_char;
|
||||
|
||||
gtk_tree_model_get (model, iter, SIMPLE_COL_DESCRIPTION, &description, -1);
|
||||
first_char = description != NULL ? *description : '\0';
|
||||
g_free (description);
|
||||
|
||||
if (first_char == '\0')
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
simple_get_variable_row (GtkTreeModel *model,
|
||||
GtkTreeIter *base_iter,
|
||||
GtkTreeIter *dest_iter)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
|
||||
iter = *base_iter;
|
||||
if (!gtk_tree_model_iter_previous (model, &iter) ||
|
||||
!gtk_tree_model_iter_previous (model, &iter) ||
|
||||
!simple_row_separator_cb (model, &iter, NULL)) {
|
||||
/* Create two new rows if it does not exist */
|
||||
GtkListStore *store;
|
||||
|
||||
store = GTK_LIST_STORE (model);
|
||||
gtk_list_store_insert_before (store, dest_iter, base_iter);
|
||||
gtk_list_store_insert_before (store, &iter, dest_iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
SIMPLE_COL_FORMAT, 0,
|
||||
SIMPLE_COL_FILTER, 0,
|
||||
SIMPLE_COL_DESCRIPTION, "", -1);
|
||||
} else {
|
||||
/* Use the existing row */
|
||||
|
||||
iter = *base_iter;
|
||||
gtk_tree_model_iter_previous (model, &iter);
|
||||
*dest_iter = iter;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
simple_set_active (GtkComboBox *simple,
|
||||
GtkTreeModel *model,
|
||||
AutoarFormat format,
|
||||
AutoarFilter filter)
|
||||
{
|
||||
GtkTreeIter iter, prev;
|
||||
AutoarFormat this_format;
|
||||
AutoarFilter this_filter;
|
||||
int get_format, get_filter;
|
||||
int *previous;
|
||||
|
||||
previous = g_object_get_data ((GObject*)simple, "previous");
|
||||
if (autoar_format_is_valid (format) && autoar_filter_is_valid (filter)) {
|
||||
gtk_tree_model_get_iter_first (model, &iter);
|
||||
do {
|
||||
gtk_tree_model_get (model, &iter,
|
||||
SIMPLE_COL_FORMAT, &this_format,
|
||||
SIMPLE_COL_FILTER, &this_filter, -1);
|
||||
if (this_format == format && this_filter == filter) {
|
||||
gtk_combo_box_set_active_iter (simple, &iter);
|
||||
previous[0] = format;
|
||||
previous[1] = filter;
|
||||
return;
|
||||
}
|
||||
prev = iter;
|
||||
} while (gtk_tree_model_iter_next (model, &iter));
|
||||
|
||||
if (gtk_tree_model_iter_previous (model, &prev)) {
|
||||
GtkTreeIter active;
|
||||
char *description_string;
|
||||
|
||||
simple_get_variable_row (model, &prev, &active);
|
||||
description_string = format_filter_full_description (format, filter);
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &active,
|
||||
SIMPLE_COL_FORMAT, format,
|
||||
SIMPLE_COL_FILTER, filter,
|
||||
SIMPLE_COL_DESCRIPTION, description_string, -1);
|
||||
g_free (description_string);
|
||||
|
||||
gtk_combo_box_set_active_iter (simple, &active);
|
||||
previous[0] = format;
|
||||
previous[1] = filter;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
gtk_tree_model_get_iter_first (model, &iter);
|
||||
gtk_combo_box_set_active_iter (simple, &iter);
|
||||
gtk_tree_model_get (model, &iter,
|
||||
SIMPLE_COL_FORMAT, &get_format,
|
||||
SIMPLE_COL_FILTER, &get_filter, -1);
|
||||
previous[0] = format;
|
||||
previous[1] = filter;
|
||||
}
|
||||
|
||||
static void
|
||||
simple_changed_cb (GtkComboBox *simple,
|
||||
void *data) {
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel* model;
|
||||
int format, filter;
|
||||
int *previous;
|
||||
|
||||
if (!gtk_combo_box_get_active_iter (simple, &iter))
|
||||
return;
|
||||
|
||||
model = gtk_combo_box_get_model (simple);
|
||||
gtk_tree_model_get (model, &iter,
|
||||
SIMPLE_COL_FORMAT, &format,
|
||||
SIMPLE_COL_FILTER, &filter, -1);
|
||||
|
||||
previous = g_object_get_data ((GObject*)simple, "previous");
|
||||
|
||||
if (!format) {
|
||||
GtkWidget *dialog_widget;
|
||||
GtkDialog *dialog;
|
||||
GtkWidget *dialog_content;
|
||||
|
||||
GtkWidget *simple_widget;
|
||||
GtkWidget *advanced_widget;
|
||||
int response;
|
||||
|
||||
simple_widget = GTK_WIDGET (simple);
|
||||
dialog_widget =
|
||||
gtk_dialog_new_with_buttons (
|
||||
_("Choose an archive format"),
|
||||
GTK_WINDOW (gtk_widget_get_ancestor (simple_widget, GTK_TYPE_WINDOW)),
|
||||
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
_("Cancel"), GTK_RESPONSE_CANCEL,
|
||||
_("OK"), GTK_RESPONSE_ACCEPT, NULL);
|
||||
dialog = GTK_DIALOG (dialog_widget);
|
||||
gtk_dialog_set_default_response (dialog, GTK_RESPONSE_ACCEPT);
|
||||
|
||||
dialog_content = gtk_dialog_get_content_area (dialog);
|
||||
advanced_widget = autoar_gtk_chooser_advanced_new (previous[0],
|
||||
previous[1]);
|
||||
gtk_container_add (GTK_CONTAINER (dialog_content), advanced_widget);
|
||||
gtk_widget_show_all (dialog_widget);
|
||||
|
||||
response = gtk_dialog_run (dialog);
|
||||
if (response == GTK_RESPONSE_ACCEPT &&
|
||||
gtk_tree_model_iter_previous (model, &iter) &&
|
||||
autoar_gtk_chooser_advanced_get (advanced_widget, &format, &filter))
|
||||
simple_set_active (simple, model, format, filter);
|
||||
else
|
||||
simple_set_active (simple, model, previous[0], previous[1]);
|
||||
|
||||
gtk_widget_destroy (dialog_widget);
|
||||
} else {
|
||||
previous[0] = format;
|
||||
previous[1] = filter;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_gtk_chooser_simple_new:
|
||||
* @default_format: an #AutoarFormat
|
||||
* @default_filter: an #AutoarFilter
|
||||
*
|
||||
* Create a #GtkComboBox with a list of common archive format. There is also
|
||||
* an option called "Other format…", which will use
|
||||
* autoar_gtk_chooser_advanced_new() and
|
||||
* autoar_gtk_chooser_advanced_get() to select less common archive
|
||||
* format. Arguments @default_format and @default_filter are the default archive
|
||||
* format selected on the returned widget. You may want to get the preferred
|
||||
* format of users using autoar_pref_get_default_format() and
|
||||
* autoar_pref_get_default_filter(), or just set them to 1 to select
|
||||
* the default archive format.
|
||||
*
|
||||
* Returns: (transfer full): a new #GtkComboBox widget
|
||||
**/
|
||||
GtkWidget*
|
||||
autoar_gtk_chooser_simple_new (AutoarFormat default_format,
|
||||
AutoarFilter default_filter)
|
||||
{
|
||||
GtkWidget *simple_widget;
|
||||
GtkComboBox *simple_combo;
|
||||
GtkCellLayout *simple;
|
||||
GtkCellRenderer *cell_renderer;
|
||||
|
||||
GtkTreeModel *model;
|
||||
GtkListStore *store;
|
||||
GtkTreeIter iter;
|
||||
int i;
|
||||
|
||||
int *previous;
|
||||
|
||||
struct format_filter
|
||||
{
|
||||
AutoarFormat format;
|
||||
AutoarFilter filter;
|
||||
};
|
||||
|
||||
struct format_filter defaults [] = {
|
||||
{ AUTOAR_FORMAT_ZIP, AUTOAR_FILTER_NONE },
|
||||
{ AUTOAR_FORMAT_TAR, AUTOAR_FILTER_NONE },
|
||||
{ AUTOAR_FORMAT_TAR, AUTOAR_FILTER_GZIP },
|
||||
{ AUTOAR_FORMAT_TAR, AUTOAR_FILTER_BZIP2 },
|
||||
{ AUTOAR_FORMAT_TAR, AUTOAR_FILTER_XZ },
|
||||
{ AUTOAR_FORMAT_CPIO, AUTOAR_FILTER_NONE },
|
||||
{ AUTOAR_FORMAT_7ZIP, AUTOAR_FILTER_NONE },
|
||||
};
|
||||
|
||||
store = gtk_list_store_new (N_SIMPLE_COLS, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING);
|
||||
model = GTK_TREE_MODEL (store);
|
||||
for (i = 0; i < sizeof (defaults) / sizeof (struct format_filter); i++) {
|
||||
char *description;
|
||||
|
||||
gtk_list_store_append (store, &iter);
|
||||
|
||||
description = format_filter_full_description (defaults[i].format,
|
||||
defaults[i].filter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
SIMPLE_COL_FORMAT, defaults[i].format,
|
||||
SIMPLE_COL_FILTER, defaults[i].filter,
|
||||
SIMPLE_COL_DESCRIPTION, description, -1);
|
||||
g_free (description);
|
||||
}
|
||||
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
SIMPLE_COL_FORMAT, 0,
|
||||
SIMPLE_COL_FILTER, 0,
|
||||
SIMPLE_COL_DESCRIPTION, "", -1);
|
||||
|
||||
gtk_list_store_append (store, &iter);
|
||||
gtk_list_store_set (store, &iter,
|
||||
SIMPLE_COL_FORMAT, 0,
|
||||
SIMPLE_COL_FILTER, 0,
|
||||
SIMPLE_COL_DESCRIPTION, _("Other format…"), -1);
|
||||
|
||||
simple_widget = gtk_combo_box_new_with_model (model);
|
||||
simple = GTK_CELL_LAYOUT (simple_widget);
|
||||
simple_combo = GTK_COMBO_BOX (simple_widget);
|
||||
cell_renderer = gtk_cell_renderer_text_new ();
|
||||
|
||||
gtk_cell_layout_pack_start (simple, cell_renderer, FALSE);
|
||||
gtk_cell_layout_add_attribute (simple, cell_renderer, "text", SIMPLE_COL_DESCRIPTION);
|
||||
|
||||
previous = g_new (int, 2);
|
||||
g_object_set_data_full ((GObject*)simple, "previous", previous, g_free);
|
||||
simple_set_active (simple_combo, model, default_format, default_filter);
|
||||
|
||||
gtk_combo_box_set_row_separator_func (simple_combo, simple_row_separator_cb, NULL, NULL);
|
||||
g_signal_connect (simple, "changed", G_CALLBACK (simple_changed_cb), NULL);
|
||||
|
||||
g_object_unref (store);
|
||||
|
||||
return simple_widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_gtk_chooser_simple_get:
|
||||
* @simple: a #GtkComboBox returned by autoar_gtk_chooser_simple_new()
|
||||
* @format: the place to store the #AutoarFormat selected by the user
|
||||
* @filter: the place to store the #AutoarFilter selected by the user
|
||||
*
|
||||
* Gets the selected archive format of the widget created by
|
||||
* autoar_gtk_chooser_simple_new().
|
||||
*
|
||||
* Returns: %TRUE if @format and @filter are set. %FALSE if there is no
|
||||
* selected item on @simple, so @format and @filter are not modified.
|
||||
**/
|
||||
gboolean
|
||||
autoar_gtk_chooser_simple_get (GtkWidget *simple,
|
||||
int *format,
|
||||
int *filter)
|
||||
{
|
||||
GtkComboBox *combo;
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
|
||||
if (!gtk_combo_box_get_active_iter (combo = GTK_COMBO_BOX (simple), &iter))
|
||||
return FALSE;
|
||||
|
||||
model = gtk_combo_box_get_model (combo);
|
||||
gtk_tree_model_get (model, &iter,
|
||||
SIMPLE_COL_FORMAT, format,
|
||||
SIMPLE_COL_FILTER, filter, -1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* autoar_gtk_chooser_advanced */
|
||||
|
||||
enum
|
||||
{
|
||||
ADVANCED_FORMAT_COL_FORMAT,
|
||||
ADVANCED_FORMAT_COL_DESCRIPTION,
|
||||
N_ADVANCED_FORMAT_COLS
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
ADVANCED_FILTER_COL_FILTER,
|
||||
ADVANCED_FILTER_COL_DESCRIPTION,
|
||||
N_ADVANCED_FILTER_COLS
|
||||
};
|
||||
|
||||
static void
|
||||
advanced_update_description_cb (GtkTreeView *unused_variable,
|
||||
GtkWidget *advanced)
|
||||
{
|
||||
int format;
|
||||
int filter;
|
||||
GtkLabel *description;
|
||||
char *description_string;
|
||||
|
||||
if (!autoar_gtk_chooser_advanced_get (advanced, &format, &filter))
|
||||
return;
|
||||
|
||||
description = GTK_LABEL (gtk_grid_get_child_at (GTK_GRID (advanced), 0, 1));
|
||||
description_string = format_filter_full_description (format, filter);
|
||||
gtk_label_set_text (description, description_string);
|
||||
g_free (description_string);
|
||||
}
|
||||
|
||||
static GtkTreeModel*
|
||||
advanced_format_store (void)
|
||||
{
|
||||
GtkListStore *store;
|
||||
int i, last;
|
||||
|
||||
store = gtk_list_store_new (N_ADVANCED_FORMAT_COLS, G_TYPE_INT, G_TYPE_STRING);
|
||||
last = autoar_format_last ();
|
||||
for (i = 1; i < last; i++) {
|
||||
GtkTreeIter iter;
|
||||
const char *description;
|
||||
|
||||
gtk_list_store_append (store, &iter);
|
||||
description = autoar_format_get_description (i);
|
||||
gtk_list_store_set (store, &iter,
|
||||
ADVANCED_FORMAT_COL_FORMAT, i,
|
||||
ADVANCED_FORMAT_COL_DESCRIPTION, description, -1);
|
||||
}
|
||||
|
||||
return GTK_TREE_MODEL (store);
|
||||
}
|
||||
|
||||
static GtkTreeModel*
|
||||
advanced_filter_store (void)
|
||||
{
|
||||
GtkListStore *store;
|
||||
int i, last;
|
||||
|
||||
store = gtk_list_store_new (N_ADVANCED_FILTER_COLS, G_TYPE_INT, G_TYPE_STRING);
|
||||
last = autoar_filter_last ();
|
||||
for (i = 1; i < last; i++) {
|
||||
GtkTreeIter iter;
|
||||
const char *description;
|
||||
|
||||
gtk_list_store_append (store, &iter);
|
||||
description = autoar_filter_get_description (i);
|
||||
gtk_list_store_set (store, &iter,
|
||||
ADVANCED_FILTER_COL_FILTER, i,
|
||||
ADVANCED_FILTER_COL_DESCRIPTION, description, -1);
|
||||
}
|
||||
|
||||
return GTK_TREE_MODEL (store);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_gtk_chooser_advanced_new:
|
||||
* @default_format: an #AutoarFormat
|
||||
* @default_filter: an #AutoarFilter
|
||||
*
|
||||
* Create a #GtkGrid with two lists. One list shows all available formats,
|
||||
* and the other list shows all available filters.
|
||||
*
|
||||
* Returns: (transfer full): a new #GtkGrid widget
|
||||
**/
|
||||
GtkWidget*
|
||||
autoar_gtk_chooser_advanced_new (AutoarFormat default_format,
|
||||
AutoarFilter default_filter)
|
||||
{
|
||||
GtkWidget *advanced_widget;
|
||||
GtkGrid *advanced;
|
||||
|
||||
GtkTreeModel *format_model;
|
||||
GtkWidget *format_widget;
|
||||
GtkTreeView *format;
|
||||
GtkTreeSelection *format_selection;
|
||||
GtkCellRenderer *format_renderer;
|
||||
GtkTreePath *format_path;
|
||||
|
||||
GtkTreeModel *filter_model;
|
||||
GtkWidget *filter_widget;
|
||||
GtkTreeView *filter;
|
||||
GtkTreeSelection *filter_selection;
|
||||
GtkCellRenderer *filter_renderer;
|
||||
GtkTreePath *filter_path;
|
||||
|
||||
GtkWidget *description_widget;
|
||||
GtkLabel *description;
|
||||
|
||||
advanced_widget = gtk_grid_new ();
|
||||
advanced = GTK_GRID (advanced_widget);
|
||||
gtk_grid_set_row_spacing (advanced, 5);
|
||||
gtk_grid_set_column_spacing (advanced, 5);
|
||||
gtk_grid_set_column_homogeneous (advanced, TRUE);
|
||||
|
||||
format_model = advanced_format_store ();
|
||||
format_widget = gtk_tree_view_new_with_model (format_model);
|
||||
format = GTK_TREE_VIEW (format_widget);
|
||||
format_selection = gtk_tree_view_get_selection (format);
|
||||
format_renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_tree_selection_set_mode (format_selection, GTK_SELECTION_SINGLE);
|
||||
gtk_tree_view_insert_column_with_attributes (format, -1, _("Format"),
|
||||
format_renderer, "text",
|
||||
ADVANCED_FORMAT_COL_DESCRIPTION,
|
||||
NULL);
|
||||
if (autoar_format_is_valid (default_format)) {
|
||||
GtkTreeIter iter;
|
||||
gboolean valid;
|
||||
format_path = NULL;
|
||||
for (valid = gtk_tree_model_get_iter_first (format_model, &iter);
|
||||
valid;
|
||||
valid = gtk_tree_model_iter_next (format_model, &iter)) {
|
||||
int get_format;
|
||||
gtk_tree_model_get (format_model, &iter,
|
||||
ADVANCED_FORMAT_COL_FORMAT, &get_format, -1);
|
||||
if (default_format == get_format) {
|
||||
format_path = gtk_tree_model_get_path (format_model, &iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (format_path == NULL)
|
||||
format_path = gtk_tree_path_new_first ();
|
||||
} else {
|
||||
format_path = gtk_tree_path_new_first ();
|
||||
}
|
||||
gtk_tree_view_set_cursor (format, format_path, NULL, FALSE);
|
||||
gtk_tree_path_free (format_path);
|
||||
gtk_grid_attach (advanced, format_widget, 0, 0, 1, 1);
|
||||
g_object_unref (format_model);
|
||||
|
||||
filter_model = advanced_filter_store ();
|
||||
filter_widget = gtk_tree_view_new_with_model (filter_model);
|
||||
filter = GTK_TREE_VIEW (filter_widget);
|
||||
filter_selection = gtk_tree_view_get_selection (filter);
|
||||
filter_renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_tree_selection_set_mode (filter_selection, GTK_SELECTION_SINGLE);
|
||||
gtk_tree_view_insert_column_with_attributes (filter, -1, _("Filter"),
|
||||
filter_renderer, "text",
|
||||
ADVANCED_FILTER_COL_DESCRIPTION,
|
||||
NULL);
|
||||
if (autoar_filter_is_valid (default_filter)) {
|
||||
GtkTreeIter iter;
|
||||
gboolean valid;
|
||||
filter_path = NULL;
|
||||
for (valid = gtk_tree_model_get_iter_first (filter_model, &iter);
|
||||
valid;
|
||||
valid = gtk_tree_model_iter_next (filter_model, &iter)) {
|
||||
int get_filter;
|
||||
gtk_tree_model_get (filter_model, &iter,
|
||||
ADVANCED_FILTER_COL_FILTER, &get_filter, -1);
|
||||
if (default_filter == get_filter) {
|
||||
filter_path = gtk_tree_model_get_path (filter_model, &iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (filter_path == NULL)
|
||||
filter_path = gtk_tree_path_new_first ();
|
||||
} else {
|
||||
filter_path = gtk_tree_path_new_first ();
|
||||
}
|
||||
gtk_tree_view_set_cursor (filter, filter_path, NULL, FALSE);
|
||||
gtk_tree_path_free (filter_path);
|
||||
gtk_grid_attach (advanced, filter_widget, 1, 0, 1, 1);
|
||||
g_object_unref (filter_model);
|
||||
|
||||
description_widget = gtk_label_new (NULL);
|
||||
description = GTK_LABEL (description_widget);
|
||||
gtk_label_set_justify (description, GTK_JUSTIFY_CENTER);
|
||||
gtk_grid_attach (advanced, description_widget, 0, 1, 2, 1);
|
||||
|
||||
g_signal_connect (format_widget, "cursor-changed",
|
||||
G_CALLBACK (advanced_update_description_cb), advanced);
|
||||
g_signal_connect (filter_widget, "cursor-changed",
|
||||
G_CALLBACK (advanced_update_description_cb), advanced);
|
||||
|
||||
/* Run the callback now to set the initial text on the label */
|
||||
advanced_update_description_cb (NULL, advanced_widget);
|
||||
|
||||
return advanced_widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_gtk_chooser_advanced_get:
|
||||
* @advanced: a #GtkGrid returned by autoar_gtk_chooser_advanced_new()
|
||||
* @format: the place to store the #AutoarFormat selected by the user
|
||||
* @filter: the place to store the #AutoarFilter selected by the user
|
||||
*
|
||||
* Gets the selected archive format of the widget created by
|
||||
* autoar_gtk_chooser_advanced_new().
|
||||
*
|
||||
* Returns: %TRUE if @format and @filter are set. %FALSE if there is no
|
||||
* selected item on @advanced, so @format and @filter are not modified.
|
||||
**/
|
||||
gboolean
|
||||
autoar_gtk_chooser_advanced_get (GtkWidget *advanced,
|
||||
int *format,
|
||||
int *filter)
|
||||
{
|
||||
GtkGrid *grid;
|
||||
GtkTreeIter format_iter, filter_iter;
|
||||
GtkTreeView *format_view, *filter_view;
|
||||
GtkTreePath *format_path, *filter_path;
|
||||
GtkTreeModel *format_model, *filter_model;
|
||||
|
||||
grid = GTK_GRID (advanced);
|
||||
format_view = GTK_TREE_VIEW (gtk_grid_get_child_at (grid, 0, 0));
|
||||
filter_view = GTK_TREE_VIEW (gtk_grid_get_child_at (grid, 1, 0));
|
||||
|
||||
gtk_tree_view_get_cursor (format_view, &format_path, NULL);
|
||||
gtk_tree_view_get_cursor (filter_view, &filter_path, NULL);
|
||||
if (format_path == NULL || filter_path == NULL) {
|
||||
gtk_tree_path_free (format_path);
|
||||
gtk_tree_path_free (filter_path);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
format_model = gtk_tree_view_get_model (format_view);
|
||||
filter_model = gtk_tree_view_get_model (filter_view);
|
||||
if (!gtk_tree_model_get_iter (format_model, &format_iter, format_path) ||
|
||||
!gtk_tree_model_get_iter (filter_model, &filter_iter, filter_path)) {
|
||||
gtk_tree_path_free (format_path);
|
||||
gtk_tree_path_free (filter_path);
|
||||
return FALSE;
|
||||
}
|
||||
gtk_tree_path_free (format_path);
|
||||
gtk_tree_path_free (filter_path);
|
||||
|
||||
gtk_tree_model_get (format_model, &format_iter,
|
||||
ADVANCED_FORMAT_COL_FORMAT, format, -1);
|
||||
gtk_tree_model_get (filter_model, &filter_iter,
|
||||
ADVANCED_FILTER_COL_FILTER, filter, -1);
|
||||
|
||||
return TRUE;
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-gtk-chooser.h
|
||||
* GTK+ widgets to choose archive format and filter
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_GTK_CHOOSER_H
|
||||
#define AUTOAR_GTK_CHOOSER_H
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "autoar-format-filter.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
GtkWidget *autoar_gtk_chooser_simple_new (AutoarFormat default_format,
|
||||
AutoarFilter default_filter);
|
||||
gboolean autoar_gtk_chooser_simple_get (GtkWidget *simple,
|
||||
int *format,
|
||||
int *filter);
|
||||
|
||||
GtkWidget *autoar_gtk_chooser_advanced_new (AutoarFormat default_format,
|
||||
AutoarFilter default_filter);
|
||||
gboolean autoar_gtk_chooser_advanced_get (GtkWidget *advanced,
|
||||
int *format,
|
||||
int *filter);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_GTK_H */
|
|
@ -0,0 +1,31 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-extract.h
|
||||
* Automatically extract archives in some GNOME programs
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOARCHIVE_GTK_H
|
||||
#define AUTOARCHIVE_GTK_H
|
||||
|
||||
#include <gnome-autoar/autoar-gtk-chooser.h>
|
||||
|
||||
#endif /* AUTOARCHIVE_GTK_H */
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* autoar-mime-types.h
|
||||
* Functions for checking autoar support for various mime types
|
||||
*
|
||||
* Copyright (C) 2016 Razvan Chitu <razvan.ch95@gmail.com>
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "autoar-mime-types.h"
|
||||
|
||||
static gchar *supported_mime_types[] = {
|
||||
"application/x-7z-compressed",
|
||||
"application/x-7z-compressed-tar",
|
||||
"application/x-bzip",
|
||||
"application/x-bzip-compressed-tar",
|
||||
"application/x-compress",
|
||||
"application/x-compressed-tar",
|
||||
"application/x-cpio",
|
||||
"application/x-gzip",
|
||||
"application/x-lha",
|
||||
"application/x-lzip",
|
||||
"application/x-lzip-compressed-tar",
|
||||
"application/x-lzma",
|
||||
"application/x-lzma-compressed-tar",
|
||||
"application/x-tar",
|
||||
"application/x-tarz",
|
||||
"application/x-xar",
|
||||
"application/x-xz",
|
||||
"application/x-xz-compressed-tar",
|
||||
"application/zip",
|
||||
"application/gzip",
|
||||
"application/bzip2",
|
||||
NULL
|
||||
};
|
||||
|
||||
static GHashTable *supported_mime_types_table = NULL;
|
||||
|
||||
static void
|
||||
initialize_supported_mime_types_table (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
supported_mime_types_table = g_hash_table_new (g_str_hash,
|
||||
g_str_equal);
|
||||
|
||||
for (i = 0; supported_mime_types[i] != NULL; ++i) {
|
||||
g_hash_table_add (supported_mime_types_table,
|
||||
supported_mime_types[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_check_mime_type_supported:
|
||||
* @mime_type: a string representing the mime type
|
||||
*
|
||||
* Checks whether a mime type is supported by autoar. This function does no
|
||||
* blocking IO.
|
||||
*
|
||||
* Returns: an #AutoarFilter
|
||||
**/
|
||||
gboolean
|
||||
autoar_check_mime_type_supported (const gchar *mime_type)
|
||||
{
|
||||
if (supported_mime_types_table == NULL) {
|
||||
initialize_supported_mime_types_table ();
|
||||
}
|
||||
|
||||
return g_hash_table_contains (supported_mime_types_table, mime_type);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_query_mime_type_supported:
|
||||
* @file: a #GFile to check if its mime type is supported
|
||||
*
|
||||
* This function will query the file's mime type and then call
|
||||
* autoar_check_mime_type_supported(), so it does blocking IO.
|
||||
*
|
||||
* Returns: an #AutoarFilter
|
||||
**/
|
||||
gboolean
|
||||
autoar_query_mime_type_supported (GFile *file)
|
||||
{
|
||||
g_autoptr (GFileInfo) info = NULL;
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE (file), FALSE);
|
||||
|
||||
info = g_file_query_info (file,
|
||||
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
|
||||
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
NULL, NULL);
|
||||
|
||||
g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
|
||||
|
||||
return autoar_check_mime_type_supported (g_file_info_get_content_type (info));
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* autoar-mime-types.h
|
||||
* Functions for checking autoar support for various mime types
|
||||
*
|
||||
* Copyright (C) 2016 Razvan Chitu <razvan.ch95@gmail.com>
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_MIME_TYPES_H
|
||||
#define AUTOAR_MIME_TYPES_H
|
||||
|
||||
#include <glib.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
gboolean autoar_check_mime_type_supported (const gchar *mime_type);
|
||||
gboolean autoar_query_mime_type_supported (GFile *file);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_MIME_TYPES_H */
|
|
@ -0,0 +1,48 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-misc.c
|
||||
* Miscellaneous functions and shared data types used by gnome-autoar
|
||||
*
|
||||
* Copyright (C) 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "autoar-misc.h"
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
/**
|
||||
* SECTION:autoar-misc
|
||||
* @Short_description: Miscellaneous functions and shared data types used
|
||||
* by gnome-autoar
|
||||
* @Title: autoar-misc
|
||||
* @Include: gnome-autoar/autoar.h
|
||||
*
|
||||
* Public utility functions and data types used by gnome-autoar;
|
||||
**/
|
||||
|
||||
/**
|
||||
* autoar_libarchive_quark:
|
||||
*
|
||||
* Gets the libarchive Error Quark.
|
||||
*
|
||||
* Returns: a #GQuark.
|
||||
**/
|
||||
G_DEFINE_QUARK (libarchive-quark, autoar_libarchive)
|
|
@ -0,0 +1,47 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-misc.h
|
||||
* Miscellaneous functions and shared data types used by gnome-autoar
|
||||
*
|
||||
* Copyright (C) 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_MISC_H
|
||||
#define AUTOAR_MISC_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* AUTOAR_LIBARCHIVE_ERROR:
|
||||
*
|
||||
* Error domain for libarchive. Error returned by functions in libarchive uses
|
||||
* this domain. Error code and messages are got using archive_errno() and
|
||||
* archive_error_string() functions provided by libarchive.
|
||||
**/
|
||||
|
||||
#define AUTOAR_LIBARCHIVE_ERROR autoar_libarchive_quark()
|
||||
|
||||
GQuark autoar_libarchive_quark (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_COMMON_H */
|
|
@ -0,0 +1,314 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-private.c
|
||||
* Some common functions used in several classes of gnome-autoar
|
||||
* This file does NOT declare any new classes and it should NOT
|
||||
* be used outside the library itself!
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "autoar-private.h"
|
||||
|
||||
#include "autoar-misc.h"
|
||||
|
||||
#include <glib.h>
|
||||
#include <gobject/gvaluecollector.h>
|
||||
#include <string.h>
|
||||
|
||||
/**
|
||||
* SECTION:autoar-common
|
||||
* @Short_description: Miscellaneous functions used by gnome-autoar
|
||||
* @Title: autoar-common
|
||||
* @Include: gnome-autoar/autoar.h
|
||||
*
|
||||
* Public utility functions used internally by other gnome-autoar functions.
|
||||
**/
|
||||
|
||||
typedef struct _AutoarCommonSignalData AutoarCommonSignalData;
|
||||
|
||||
struct _AutoarCommonSignalData
|
||||
{
|
||||
GValue instance_and_params[3]; /* Maximum number of parameters + 1 */
|
||||
gssize used_values; /* Number of GValues to be unset */
|
||||
guint signal_id;
|
||||
GQuark detail;
|
||||
};
|
||||
|
||||
/**
|
||||
* autoar_common_get_filename_extension:
|
||||
* @filename: a filename
|
||||
*
|
||||
* Gets the extension of a filename.
|
||||
*
|
||||
* Returns: (transfer none): a pointer to the extension of the filename
|
||||
**/
|
||||
G_GNUC_INTERNAL char*
|
||||
autoar_common_get_filename_extension (const char *filename)
|
||||
{
|
||||
char *dot_location;
|
||||
|
||||
dot_location = strrchr (filename, '.');
|
||||
if (dot_location == NULL || dot_location == filename) {
|
||||
return (char*)filename;
|
||||
}
|
||||
|
||||
if (dot_location - 4 > filename && strncmp (dot_location - 4, ".tar", 4) == 0)
|
||||
dot_location -= 4;
|
||||
else if (dot_location - 5 > filename && strncmp (dot_location - 5, ".cpio", 5) == 0)
|
||||
dot_location -= 5;
|
||||
|
||||
return dot_location;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_get_basename_remove_extension:
|
||||
* @filename: a filename
|
||||
*
|
||||
* Gets the basename of a path without its file name extension.
|
||||
*
|
||||
* Returns: (transfer full): a new filename without extension. Free the
|
||||
* returned string with g_free().
|
||||
**/
|
||||
G_GNUC_INTERNAL char*
|
||||
autoar_common_get_basename_remove_extension (const char *filename)
|
||||
{
|
||||
char *dot_location;
|
||||
char *basename;
|
||||
|
||||
if (filename == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* filename must not be directory, so we do not get a bad basename. */
|
||||
basename = g_path_get_basename (filename);
|
||||
|
||||
dot_location = autoar_common_get_filename_extension (basename);
|
||||
if (dot_location != basename)
|
||||
*dot_location = '\0';
|
||||
|
||||
g_debug ("autoar_common_get_basename_remove_extension: %s => %s",
|
||||
filename,
|
||||
basename);
|
||||
return basename;
|
||||
}
|
||||
|
||||
static void
|
||||
autoar_common_signal_data_free (AutoarCommonSignalData *signal_data)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < signal_data->used_values; i++)
|
||||
g_value_unset (signal_data->instance_and_params + i);
|
||||
|
||||
g_free (signal_data);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
autoar_common_g_signal_emit_main_context (void *data)
|
||||
{
|
||||
AutoarCommonSignalData *signal_data = data;
|
||||
g_signal_emitv (signal_data->instance_and_params,
|
||||
signal_data->signal_id,
|
||||
signal_data->detail,
|
||||
NULL);
|
||||
autoar_common_signal_data_free (signal_data);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_g_signal_emit:
|
||||
* @instance: the instance the signal is being emitted on.
|
||||
* @in_thread: %TRUE if you are not call this function inside the main thread.
|
||||
* @signal_id: the signal id
|
||||
* @detail: the detail
|
||||
* @...: parameters to be passed to the signal.
|
||||
*
|
||||
* This is a wrapper for g_signal_emit(). If @in_thread is %FALSE, this
|
||||
* function is the same as g_signal_emit(). If @in_thread is %TRUE, the
|
||||
* signal will be emitted from the main thread. This function will send
|
||||
* the signal emission job via g_main_context_invoke(), but it does not
|
||||
* wait for the signal emission job to be completed. Hence, the signal
|
||||
* may emitted after autoar_common_g_signal_emit() is returned.
|
||||
**/
|
||||
G_GNUC_INTERNAL void
|
||||
autoar_common_g_signal_emit (gpointer instance,
|
||||
gboolean in_thread,
|
||||
guint signal_id,
|
||||
GQuark detail,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, detail);
|
||||
if (in_thread) {
|
||||
int i;
|
||||
gchar *error;
|
||||
GSignalQuery query;
|
||||
AutoarCommonSignalData *data;
|
||||
|
||||
error = NULL;
|
||||
data = g_new0 (AutoarCommonSignalData, 1);
|
||||
data->signal_id = signal_id;
|
||||
data->detail = detail;
|
||||
data->used_values = 1;
|
||||
g_value_init (data->instance_and_params, G_TYPE_FROM_INSTANCE (instance));
|
||||
g_value_set_instance (data->instance_and_params, instance);
|
||||
|
||||
g_signal_query (signal_id, &query);
|
||||
if (query.signal_id == 0) {
|
||||
autoar_common_signal_data_free (data);
|
||||
va_end (ap);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < query.n_params; i++) {
|
||||
G_VALUE_COLLECT_INIT (data->instance_and_params + i + 1,
|
||||
query.param_types[i],
|
||||
ap,
|
||||
0,
|
||||
&error);
|
||||
if (error != NULL)
|
||||
break;
|
||||
data->used_values++;
|
||||
}
|
||||
|
||||
if (error == NULL) {
|
||||
g_main_context_invoke (NULL, autoar_common_g_signal_emit_main_context, data);
|
||||
} else {
|
||||
autoar_common_signal_data_free (data);
|
||||
g_debug ("G_VALUE_COLLECT_INIT: Error: %s", error);
|
||||
g_free (error);
|
||||
va_end (ap);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
g_signal_emit_valist (instance, signal_id, detail, ap);
|
||||
}
|
||||
va_end (ap);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_g_object_unref:
|
||||
* @object: a #GObject
|
||||
*
|
||||
* This is a wrapper for g_object_unref(). If @object is %NULL, this function
|
||||
* does nothing. Otherwise, it will call g_object_unref() on the @object.
|
||||
**/
|
||||
G_GNUC_INTERNAL void
|
||||
autoar_common_g_object_unref (gpointer object)
|
||||
{
|
||||
if (object != NULL)
|
||||
g_object_unref (object);
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_g_error_new_a:
|
||||
* @a: a archive object
|
||||
* @pathname: the file which causes error, or %NULL
|
||||
*
|
||||
* Creates a new #GError with error messages got from libarchive.
|
||||
*
|
||||
* Returns: (transfer full): a #GError. Free with g_error_free().
|
||||
**/
|
||||
G_GNUC_INTERNAL GError*
|
||||
autoar_common_g_error_new_a (struct archive *a,
|
||||
const char *pathname)
|
||||
{
|
||||
GError *newerror;
|
||||
newerror = g_error_new (AUTOAR_LIBARCHIVE_ERROR,
|
||||
archive_errno (a),
|
||||
"%s%s%s%s",
|
||||
pathname != NULL ? "\'" : "",
|
||||
pathname != NULL ? pathname : "",
|
||||
pathname != NULL ? "\': " : "",
|
||||
archive_error_string (a));
|
||||
return newerror;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_g_error_new_a_entry:
|
||||
* @a: a archive object
|
||||
* @entry: a archive_entry object
|
||||
*
|
||||
* Gets pathname from @entry and call autoar_common_g_error_new_a().
|
||||
*
|
||||
* Returns: (transfer full): a #GError. Free with g_error_free().
|
||||
**/
|
||||
G_GNUC_INTERNAL GError*
|
||||
autoar_common_g_error_new_a_entry (struct archive *a,
|
||||
struct archive_entry *entry)
|
||||
{
|
||||
return autoar_common_g_error_new_a (a, archive_entry_pathname (entry));
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_g_file_get_name:
|
||||
* @file: a #GFile
|
||||
*
|
||||
* Gets a string represents the @file. It will be the path of @file if
|
||||
* available. Otherwise, it will be the URI of @file.
|
||||
*
|
||||
* Returns: (transfer full): a string represents the file. Free the string
|
||||
* with g_free().
|
||||
**/
|
||||
G_GNUC_INTERNAL char*
|
||||
autoar_common_g_file_get_name (GFile *file)
|
||||
{
|
||||
char *name;
|
||||
name = g_file_get_path (file);
|
||||
if (name == NULL)
|
||||
name = g_file_get_uri (file);
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* autoar_common_get_utf8_pathname:
|
||||
* @pathname: a pathname with an unspecified encoding
|
||||
*
|
||||
* Transforms pathname into a UTF-8 filename from a variety of common
|
||||
* legacy encodings.
|
||||
*
|
||||
* Returns: (transfer full): a UTF-8 filename, or %NULL if the filename
|
||||
* could not be converted or is already in UTF-8. Free the string with
|
||||
* g_free().
|
||||
**/
|
||||
G_GNUC_INTERNAL char*
|
||||
autoar_common_get_utf8_pathname (const char *pathname)
|
||||
{
|
||||
char *utf8_pathname;
|
||||
static const char *try_charsets[] = { "CSPC8CODEPAGE437", "ISO-8859-1", "WINDOWS-1252" };
|
||||
guint i;
|
||||
|
||||
if (g_utf8_validate (pathname, -1, NULL))
|
||||
return NULL;
|
||||
/* If pathname is not in UTF-8 encoding already, try
|
||||
* to convert it using commonly used encoding in various archive types.
|
||||
* See also https://git.gnome.org//browse/file-roller/tree/src/fr-process.c#n245 */
|
||||
for (i = 0; i < G_N_ELEMENTS (try_charsets); i++) {
|
||||
utf8_pathname = g_convert (pathname, -1, "UTF-8",
|
||||
try_charsets[i], NULL, NULL, NULL);
|
||||
if (utf8_pathname != NULL)
|
||||
break;
|
||||
}
|
||||
|
||||
return utf8_pathname;
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* autoar-private.h
|
||||
* Some common functions used in several classes of gnome-autoar
|
||||
* This file does NOT declare any new classes and it should NOT
|
||||
* be used outside the library itself!
|
||||
*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOAR_PRIVATE_H
|
||||
#define AUTOAR_PRIVATE_H
|
||||
|
||||
/* archive.h use time_t */
|
||||
#include <time.h>
|
||||
|
||||
#include <archive.h>
|
||||
#include <archive_entry.h>
|
||||
#include <gio/gio.h>
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
char* autoar_common_get_basename_remove_extension (const char *filename);
|
||||
char* autoar_common_get_filename_extension (const char *filename);
|
||||
|
||||
void autoar_common_g_signal_emit (gpointer instance,
|
||||
gboolean in_thread,
|
||||
guint signal_id,
|
||||
GQuark detail,
|
||||
...);
|
||||
void autoar_common_g_object_unref (gpointer object);
|
||||
|
||||
GError* autoar_common_g_error_new_a (struct archive *a,
|
||||
const char *pathname);
|
||||
GError* autoar_common_g_error_new_a_entry (struct archive *a,
|
||||
struct archive_entry *entry);
|
||||
|
||||
char* autoar_common_g_file_get_name (GFile *file);
|
||||
char* autoar_common_get_utf8_pathname (const char *pathname);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* AUTOAR_COMMON_H */
|
|
@ -0,0 +1,11 @@
|
|||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: gnome-autoar
|
||||
Description: GTK+ widgets for gnome-autoar library
|
||||
Version: @VERSION@
|
||||
Requires: gtk+-3.0
|
||||
Libs: -L${libdir} -lgnome-autoar-gtk-@LIBGNOME_AUTOAR_API_VERSION@
|
||||
Cflags: -I${includedir}/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@
|
|
@ -0,0 +1,33 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/*
|
||||
* Copyright (C) 2013, 2014 Ting-Wei Lan
|
||||
*
|
||||
* 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 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
|
||||
* Lesser 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 St, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AUTOARCHIVE_H
|
||||
#define AUTOARCHIVE_H
|
||||
|
||||
#include <gnome-autoar/autoar-compressor.h>
|
||||
#include <gnome-autoar/autoar-format-filter.h>
|
||||
#include <gnome-autoar/autoar-extractor.h>
|
||||
#include <gnome-autoar/autoar-misc.h>
|
||||
#include <gnome-autoar/autoar-mime-types.h>
|
||||
#include <gnome-autoar/autoar-enum-types.h>
|
||||
|
||||
#endif /* AUTOARCHIVE_H */
|
|
@ -0,0 +1,11 @@
|
|||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: gnome-autoar
|
||||
Description: Archives integration support for GNOME
|
||||
Version: @VERSION@
|
||||
Requires: gio-2.0 gobject-2.0 glib-2.0 @GNOME_AUTOAR_LIBARCHIVE_REQUIRES@
|
||||
Libs: -L${libdir} -lgnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@ @GNOME_AUTOAR_LIBARCHIVE_LIBS@
|
||||
Cflags: -I${includedir}/gnome-autoar-@LIBGNOME_AUTOAR_API_VERSION@
|
|
@ -0,0 +1,320 @@
|
|||
# -*- mode: makefile -*-
|
||||
#
|
||||
# gtk-doc.make - make rules for gtk-doc
|
||||
# Copyright (C) 2003 James Henstridge
|
||||
# 2004-2007 Damon Chaplin
|
||||
# 2007-2017 Stefan Sauer
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
####################################
|
||||
# Everything below here is generic #
|
||||
####################################
|
||||
|
||||
if GTK_DOC_USE_LIBTOOL
|
||||
GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
|
||||
GTKDOC_RUN = $(LIBTOOL) --mode=execute
|
||||
else
|
||||
GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
|
||||
GTKDOC_RUN =
|
||||
endif
|
||||
|
||||
# We set GPATH here; this gives us semantics for GNU make
|
||||
# which are more like other make's VPATH, when it comes to
|
||||
# whether a source that is a target of one rule is then
|
||||
# searched for in VPATH/GPATH.
|
||||
#
|
||||
GPATH = $(srcdir)
|
||||
|
||||
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
|
||||
|
||||
SETUP_FILES = \
|
||||
$(content_files) \
|
||||
$(expand_content_files) \
|
||||
$(DOC_MAIN_SGML_FILE) \
|
||||
$(DOC_MODULE)-sections.txt \
|
||||
$(DOC_MODULE)-overrides.txt
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(HTML_IMAGES) \
|
||||
$(SETUP_FILES)
|
||||
|
||||
DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
|
||||
html-build.stamp pdf-build.stamp \
|
||||
sgml.stamp html.stamp pdf.stamp
|
||||
|
||||
SCANOBJ_FILES = \
|
||||
$(DOC_MODULE).args \
|
||||
$(DOC_MODULE).hierarchy \
|
||||
$(DOC_MODULE).interfaces \
|
||||
$(DOC_MODULE).prerequisites \
|
||||
$(DOC_MODULE).signals
|
||||
|
||||
REPORT_FILES = \
|
||||
$(DOC_MODULE)-undocumented.txt \
|
||||
$(DOC_MODULE)-undeclared.txt \
|
||||
$(DOC_MODULE)-unused.txt
|
||||
|
||||
gtkdoc-check.test: Makefile
|
||||
$(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
|
||||
echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
|
||||
chmod +x $@
|
||||
|
||||
CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
|
||||
|
||||
if GTK_DOC_BUILD_HTML
|
||||
HTML_BUILD_STAMP=html-build.stamp
|
||||
else
|
||||
HTML_BUILD_STAMP=
|
||||
endif
|
||||
if GTK_DOC_BUILD_PDF
|
||||
PDF_BUILD_STAMP=pdf-build.stamp
|
||||
else
|
||||
PDF_BUILD_STAMP=
|
||||
endif
|
||||
|
||||
all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
|
||||
.PHONY: all-gtk-doc
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
all-local: all-gtk-doc
|
||||
endif
|
||||
|
||||
docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
|
||||
|
||||
$(REPORT_FILES): sgml-build.stamp
|
||||
|
||||
#### setup ####
|
||||
|
||||
GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@)
|
||||
GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_SETUP_0=@echo " DOC Preparing build";
|
||||
|
||||
setup-build.stamp:
|
||||
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||
files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
|
||||
if test "x$$files" != "x" ; then \
|
||||
for file in $$files ; do \
|
||||
destdir=`dirname $(abs_builddir)/$$file`; \
|
||||
test -d "$$destdir" || mkdir -p "$$destdir"; \
|
||||
test -f $(abs_srcdir)/$$file && \
|
||||
cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
|
||||
done; \
|
||||
fi; \
|
||||
fi
|
||||
$(AM_V_at)touch setup-build.stamp
|
||||
|
||||
#### scan ####
|
||||
|
||||
GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@)
|
||||
GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files";
|
||||
|
||||
GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@)
|
||||
GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
|
||||
|
||||
scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
|
||||
$(GTK_DOC_V_SCAN)_source_dir='' ; \
|
||||
for i in $(DOC_SOURCE_DIR) ; do \
|
||||
_source_dir="$${_source_dir} --source-dir=$$i" ; \
|
||||
done ; \
|
||||
gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
|
||||
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
|
||||
scanobj_options=""; \
|
||||
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
scanobj_options="--verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
|
||||
gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
|
||||
else \
|
||||
for i in $(SCANOBJ_FILES) ; do \
|
||||
test -f $$i || touch $$i ; \
|
||||
done \
|
||||
fi
|
||||
$(AM_V_at)touch scan-build.stamp
|
||||
|
||||
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
|
||||
@true
|
||||
|
||||
#### xml ####
|
||||
|
||||
GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@)
|
||||
GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_XML_0=@echo " DOC Building XML";
|
||||
|
||||
sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
|
||||
$(GTK_DOC_V_XML)_source_dir='' ; \
|
||||
for i in $(DOC_SOURCE_DIR) ; do \
|
||||
_source_dir="$${_source_dir} --source-dir=$$i" ; \
|
||||
done ; \
|
||||
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
|
||||
$(AM_V_at)touch sgml-build.stamp
|
||||
|
||||
sgml.stamp: sgml-build.stamp
|
||||
@true
|
||||
|
||||
$(DOC_MAIN_SGML_FILE): sgml-build.stamp
|
||||
@true
|
||||
|
||||
xml/gtkdocentities.ent: Makefile
|
||||
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
|
||||
echo "<!ENTITY package \"$(PACKAGE)\">"; \
|
||||
echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
|
||||
echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
|
||||
echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
|
||||
echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
|
||||
echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
|
||||
echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
|
||||
) > $@
|
||||
|
||||
#### html ####
|
||||
|
||||
GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@)
|
||||
GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_HTML_0=@echo " DOC Building HTML";
|
||||
|
||||
GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@)
|
||||
GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
|
||||
|
||||
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
||||
$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
|
||||
mkhtml_options=""; \
|
||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
mkhtml_options="$$mkhtml_options --verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
|
||||
if test "$$?" = "0"; then \
|
||||
mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
|
||||
fi; \
|
||||
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
|
||||
-@test "x$(HTML_IMAGES)" = "x" || \
|
||||
for file in $(HTML_IMAGES) ; do \
|
||||
test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
|
||||
test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \
|
||||
done;
|
||||
$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
|
||||
$(AM_V_at)touch html-build.stamp
|
||||
|
||||
#### pdf ####
|
||||
|
||||
GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@)
|
||||
GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@)
|
||||
GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
|
||||
|
||||
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
||||
$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
|
||||
mkpdf_options=""; \
|
||||
gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||
if test "$$?" = "0"; then \
|
||||
if test "x$(V)" = "x1"; then \
|
||||
mkpdf_options="$$mkpdf_options --verbose"; \
|
||||
fi; \
|
||||
fi; \
|
||||
if test "x$(HTML_IMAGES)" != "x"; then \
|
||||
for img in $(HTML_IMAGES); do \
|
||||
part=`dirname $$img`; \
|
||||
echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
|
||||
if test $$? != 0; then \
|
||||
mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
|
||||
fi; \
|
||||
done; \
|
||||
fi; \
|
||||
gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
|
||||
$(AM_V_at)touch pdf-build.stamp
|
||||
|
||||
##############
|
||||
|
||||
clean-local:
|
||||
@rm -f *~ *.bak
|
||||
@rm -rf .libs
|
||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
|
||||
rm -f $(DOC_MODULE).types; \
|
||||
fi
|
||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
|
||||
rm -f $(DOC_MODULE)-sections.txt; \
|
||||
fi
|
||||
|
||||
distclean-local:
|
||||
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
|
||||
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
|
||||
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||
rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
|
||||
fi
|
||||
|
||||
maintainer-clean-local:
|
||||
@rm -rf xml html
|
||||
|
||||
install-data-local:
|
||||
@installfiles=`echo $(builddir)/html/*`; \
|
||||
if test "$$installfiles" = '$(builddir)/html/*'; \
|
||||
then echo 1>&2 'Nothing to install' ; \
|
||||
else \
|
||||
if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
|
||||
else \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)"; \
|
||||
fi; \
|
||||
$(mkinstalldirs) $${installdir} ; \
|
||||
for i in $$installfiles; do \
|
||||
echo ' $(INSTALL_DATA) '$$i ; \
|
||||
$(INSTALL_DATA) $$i $${installdir}; \
|
||||
done; \
|
||||
if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
|
||||
$${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
|
||||
fi; \
|
||||
$(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
|
||||
fi
|
||||
|
||||
uninstall-local:
|
||||
@if test -n "$(DOC_MODULE_VERSION)"; then \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
|
||||
else \
|
||||
installdir="$(DESTDIR)$(TARGET_DIR)"; \
|
||||
fi; \
|
||||
rm -rf $${installdir}
|
||||
|
||||
#
|
||||
# Require gtk-doc when making dist
|
||||
#
|
||||
if HAVE_GTK_DOC
|
||||
dist-check-gtkdoc: docs
|
||||
else
|
||||
dist-check-gtkdoc:
|
||||
@echo "*** gtk-doc is needed to run 'make dist'. ***"
|
||||
@echo "*** gtk-doc was not found when 'configure' ran. ***"
|
||||
@echo "*** please install gtk-doc and rerun 'configure'. ***"
|
||||
@false
|
||||
endif
|
||||
|
||||
dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
|
||||
@mkdir $(distdir)/html
|
||||
@cp ./html/* $(distdir)/html
|
||||
@-cp ./$(DOC_MODULE).pdf $(distdir)/
|
||||
@-cp ./$(DOC_MODULE).types $(distdir)/
|
||||
@-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
|
||||
@cd $(distdir) && rm -f $(DISTCLEANFILES)
|
||||
@$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
|
||||
|
||||
.PHONY : dist-hook-local docs
|
|
@ -0,0 +1,501 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# 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.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
doit=${DOITPROG-}
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# 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_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
|
||||
is_target_a_directory=possibly
|
||||
|
||||
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
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
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
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 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 problematic for 'test' and other utilities.
|
||||
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
|
||||
|
||||
# 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 "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
dstdir=`dirname "$dst"`
|
||||
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-writable 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
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && 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` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
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-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
|
@ -0,0 +1,113 @@
|
|||
# -*- mode: autoconf -*-
|
||||
#
|
||||
# gtk-doc.m4 - configure macro to check for gtk-doc
|
||||
# Copyright (C) 2003 James Henstridge
|
||||
# 2007-2017 Stefan Sauer
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the above copyright owner gives unlimited
|
||||
# permission to copy, distribute and modify the configure scripts that
|
||||
# are the output of Autoconf when processing the Macro. You need not
|
||||
# follow the terms of the GNU General Public License when using or
|
||||
# distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
|
||||
# serial 2
|
||||
|
||||
dnl Usage:
|
||||
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
|
||||
AC_DEFUN([GTK_DOC_CHECK],
|
||||
[
|
||||
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
|
||||
ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
|
||||
AC_MSG_CHECKING([for gtk-doc])
|
||||
PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
|
||||
AC_MSG_RESULT($have_gtk_doc)
|
||||
|
||||
if test "$have_gtk_doc" = "no"; then
|
||||
AC_MSG_WARN([
|
||||
You will not be able to create source packages with 'make dist'
|
||||
because $gtk_doc_requires is not found.])
|
||||
fi
|
||||
|
||||
dnl check for tools we added during development
|
||||
dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
|
||||
dnl may not be writable by the user. Currently, automake requires that the
|
||||
dnl test name must end in '.test'.
|
||||
dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
|
||||
AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
|
||||
AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
|
||||
AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
|
||||
AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
|
||||
|
||||
dnl for overriding the documentation installation directory
|
||||
AC_ARG_WITH([html-dir],
|
||||
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
|
||||
[with_html_dir='${datadir}/gtk-doc/html'])
|
||||
HTML_DIR="$with_html_dir"
|
||||
AC_SUBST([HTML_DIR])
|
||||
|
||||
dnl enable/disable documentation building
|
||||
AC_ARG_ENABLE([gtk-doc],
|
||||
AS_HELP_STRING([--enable-gtk-doc],
|
||||
[use gtk-doc to build documentation [[default=no]]]),,
|
||||
[enable_gtk_doc=no])
|
||||
|
||||
AC_MSG_CHECKING([whether to build gtk-doc documentation])
|
||||
AC_MSG_RESULT($enable_gtk_doc)
|
||||
|
||||
if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
|
||||
AC_MSG_ERROR([
|
||||
You must have $gtk_doc_requires installed to build documentation for
|
||||
$PACKAGE_NAME. Please install gtk-doc or disable building the
|
||||
documentation by adding '--disable-gtk-doc' to '[$]0'.])
|
||||
fi
|
||||
|
||||
dnl don't check for glib if we build glib
|
||||
if test "x$PACKAGE_NAME" != "xglib"; then
|
||||
dnl don't fail if someone does not have glib
|
||||
PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
|
||||
fi
|
||||
|
||||
dnl enable/disable output formats
|
||||
AC_ARG_ENABLE([gtk-doc-html],
|
||||
AS_HELP_STRING([--enable-gtk-doc-html],
|
||||
[build documentation in html format [[default=yes]]]),,
|
||||
[enable_gtk_doc_html=yes])
|
||||
AC_ARG_ENABLE([gtk-doc-pdf],
|
||||
AS_HELP_STRING([--enable-gtk-doc-pdf],
|
||||
[build documentation in pdf format [[default=no]]]),,
|
||||
[enable_gtk_doc_pdf=no])
|
||||
|
||||
if test -z "$GTKDOC_MKPDF"; then
|
||||
enable_gtk_doc_pdf=no
|
||||
fi
|
||||
|
||||
if test -z "$AM_DEFAULT_VERBOSITY"; then
|
||||
AM_DEFAULT_VERBOSITY=1
|
||||
fi
|
||||
AC_SUBST([AM_DEFAULT_VERBOSITY])
|
||||
|
||||
AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
|
||||
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
|
||||
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
|
||||
AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
|
||||
])
|
|
@ -0,0 +1,437 @@
|
|||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# 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 ltoptions.m4
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
|
||||
|
||||
|
||||
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
|
||||
# ------------------------------------------
|
||||
m4_define([_LT_MANGLE_OPTION],
|
||||
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
|
||||
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
|
||||
# ---------------------------------------
|
||||
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
|
||||
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
|
||||
# saved as a flag.
|
||||
m4_define([_LT_SET_OPTION],
|
||||
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
|
||||
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
|
||||
_LT_MANGLE_DEFUN([$1], [$2]),
|
||||
[m4_warning([Unknown $1 option '$2'])])[]dnl
|
||||
])
|
||||
|
||||
|
||||
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
|
||||
# ------------------------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
m4_define([_LT_IF_OPTION],
|
||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
|
||||
|
||||
|
||||
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
|
||||
# -------------------------------------------------------
|
||||
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
|
||||
# are set.
|
||||
m4_define([_LT_UNLESS_OPTIONS],
|
||||
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
|
||||
[m4_define([$0_found])])])[]dnl
|
||||
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
|
||||
])[]dnl
|
||||
])
|
||||
|
||||
|
||||
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
|
||||
# ----------------------------------------
|
||||
# OPTION-LIST is a space-separated list of Libtool options associated
|
||||
# with MACRO-NAME. If any OPTION has a matching handler declared with
|
||||
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
|
||||
# the unknown option and exit.
|
||||
m4_defun([_LT_SET_OPTIONS],
|
||||
[# Set options
|
||||
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||
[_LT_SET_OPTION([$1], _LT_Option)])
|
||||
|
||||
m4_if([$1],[LT_INIT],[
|
||||
dnl
|
||||
dnl Simply set some default values (i.e off) if boolean options were not
|
||||
dnl specified:
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
|
||||
])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
|
||||
])
|
||||
dnl
|
||||
dnl If no reference was made to various pairs of opposing options, then
|
||||
dnl we run the default mode handler for the pair. For example, if neither
|
||||
dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
|
||||
dnl archives by default:
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
|
||||
[_LT_ENABLE_FAST_INSTALL])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
|
||||
[_LT_WITH_AIX_SONAME([aix])])
|
||||
])
|
||||
])# _LT_SET_OPTIONS
|
||||
|
||||
|
||||
## --------------------------------- ##
|
||||
## Macros to handle LT_INIT options. ##
|
||||
## --------------------------------- ##
|
||||
|
||||
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
|
||||
# -----------------------------------------
|
||||
m4_define([_LT_MANGLE_DEFUN],
|
||||
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
|
||||
|
||||
|
||||
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
|
||||
# -----------------------------------------------
|
||||
m4_define([LT_OPTION_DEFINE],
|
||||
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
|
||||
])# LT_OPTION_DEFINE
|
||||
|
||||
|
||||
# dlopen
|
||||
# ------
|
||||
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
|
||||
])
|
||||
|
||||
AU_DEFUN([AC_LIBTOOL_DLOPEN],
|
||||
[_LT_SET_OPTION([LT_INIT], [dlopen])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the 'dlopen' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
|
||||
|
||||
|
||||
# win32-dll
|
||||
# ---------
|
||||
# Declare package support for building win32 dll's.
|
||||
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
|
||||
[enable_win32_dll=yes
|
||||
|
||||
case $host in
|
||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
|
||||
AC_CHECK_TOOL(AS, as, false)
|
||||
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||
;;
|
||||
esac
|
||||
|
||||
test -z "$AS" && AS=as
|
||||
_LT_DECL([], [AS], [1], [Assembler program])dnl
|
||||
|
||||
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
||||
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
|
||||
|
||||
test -z "$OBJDUMP" && OBJDUMP=objdump
|
||||
_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
|
||||
])# win32-dll
|
||||
|
||||
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
_LT_SET_OPTION([LT_INIT], [win32-dll])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the 'win32-dll' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
|
||||
|
||||
|
||||
# _LT_ENABLE_SHARED([DEFAULT])
|
||||
# ----------------------------
|
||||
# implement the --enable-shared flag, and supports the 'shared' and
|
||||
# 'disable-shared' LT_INIT options.
|
||||
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
|
||||
m4_define([_LT_ENABLE_SHARED],
|
||||
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([shared],
|
||||
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
|
||||
[build shared libraries @<:@default=]_LT_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=]_LT_ENABLE_SHARED_DEFAULT)
|
||||
|
||||
_LT_DECL([build_libtool_libs], [enable_shared], [0],
|
||||
[Whether or not to build shared libraries])
|
||||
])# _LT_ENABLE_SHARED
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
|
||||
|
||||
# Old names:
|
||||
AC_DEFUN([AC_ENABLE_SHARED],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_DISABLE_SHARED],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-shared])
|
||||
])
|
||||
|
||||
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
|
||||
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
|
||||
|
||||
|
||||
|
||||
# _LT_ENABLE_STATIC([DEFAULT])
|
||||
# ----------------------------
|
||||
# implement the --enable-static flag, and support the 'static' and
|
||||
# 'disable-static' LT_INIT options.
|
||||
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
|
||||
m4_define([_LT_ENABLE_STATIC],
|
||||
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([static],
|
||||
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
|
||||
[build static libraries @<:@default=]_LT_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=]_LT_ENABLE_STATIC_DEFAULT)
|
||||
|
||||
_LT_DECL([build_old_libs], [enable_static], [0],
|
||||
[Whether or not to build static libraries])
|
||||
])# _LT_ENABLE_STATIC
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
|
||||
|
||||
# Old names:
|
||||
AC_DEFUN([AC_ENABLE_STATIC],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_DISABLE_STATIC],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-static])
|
||||
])
|
||||
|
||||
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
|
||||
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
|
||||
|
||||
|
||||
|
||||
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
|
||||
# ----------------------------------
|
||||
# implement the --enable-fast-install flag, and support the 'fast-install'
|
||||
# and 'disable-fast-install' LT_INIT options.
|
||||
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
|
||||
m4_define([_LT_ENABLE_FAST_INSTALL],
|
||||
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([fast-install],
|
||||
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
|
||||
[optimize for fast installation @<:@default=]_LT_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=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
|
||||
|
||||
_LT_DECL([fast_install], [enable_fast_install], [0],
|
||||
[Whether or not to optimize for fast installation])dnl
|
||||
])# _LT_ENABLE_FAST_INSTALL
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
|
||||
|
||||
# Old names:
|
||||
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||
the 'fast-install' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||
the 'disable-fast-install' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
|
||||
|
||||
|
||||
# _LT_WITH_AIX_SONAME([DEFAULT])
|
||||
# ----------------------------------
|
||||
# implement the --with-aix-soname flag, and support the `aix-soname=aix'
|
||||
# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
|
||||
# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
|
||||
m4_define([_LT_WITH_AIX_SONAME],
|
||||
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
|
||||
shared_archive_member_spec=
|
||||
case $host,$enable_shared in
|
||||
power*-*-aix[[5-9]]*,yes)
|
||||
AC_MSG_CHECKING([which variant of shared library versioning to provide])
|
||||
AC_ARG_WITH([aix-soname],
|
||||
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
|
||||
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
|
||||
[case $withval in
|
||||
aix|svr4|both)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknown argument to --with-aix-soname])
|
||||
;;
|
||||
esac
|
||||
lt_cv_with_aix_soname=$with_aix_soname],
|
||||
[AC_CACHE_VAL([lt_cv_with_aix_soname],
|
||||
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
|
||||
with_aix_soname=$lt_cv_with_aix_soname])
|
||||
AC_MSG_RESULT([$with_aix_soname])
|
||||
if test aix != "$with_aix_soname"; then
|
||||
# For the AIX way of multilib, we name the shared archive member
|
||||
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
|
||||
# and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
|
||||
# Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
|
||||
# the AIX toolchain works better with OBJECT_MODE set (default 32).
|
||||
if test 64 = "${OBJECT_MODE-32}"; then
|
||||
shared_archive_member_spec=shr_64
|
||||
else
|
||||
shared_archive_member_spec=shr
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
with_aix_soname=aix
|
||||
;;
|
||||
esac
|
||||
|
||||
_LT_DECL([], [shared_archive_member_spec], [0],
|
||||
[Shared archive member basename, for filename based shared library versioning on AIX])dnl
|
||||
])# _LT_WITH_AIX_SONAME
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
|
||||
|
||||
|
||||
# _LT_WITH_PIC([MODE])
|
||||
# --------------------
|
||||
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
|
||||
# LT_INIT options.
|
||||
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
|
||||
m4_define([_LT_WITH_PIC],
|
||||
[AC_ARG_WITH([pic],
|
||||
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
|
||||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
||||
[lt_p=${PACKAGE-default}
|
||||
case $withval in
|
||||
yes|no) pic_mode=$withval ;;
|
||||
*)
|
||||
pic_mode=default
|
||||
# Look at the argument we got. We use all the common list separators.
|
||||
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
|
||||
for lt_pkg in $withval; do
|
||||
IFS=$lt_save_ifs
|
||||
if test "X$lt_pkg" = "X$lt_p"; then
|
||||
pic_mode=yes
|
||||
fi
|
||||
done
|
||||
IFS=$lt_save_ifs
|
||||
;;
|
||||
esac],
|
||||
[pic_mode=m4_default([$1], [default])])
|
||||
|
||||
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
|
||||
])# _LT_WITH_PIC
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
|
||||
|
||||
# Old name:
|
||||
AU_DEFUN([AC_LIBTOOL_PICMODE],
|
||||
[_LT_SET_OPTION([LT_INIT], [pic-only])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the 'pic-only' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
|
||||
|
||||
## ----------------- ##
|
||||
## LTDL_INIT Options ##
|
||||
## ----------------- ##
|
||||
|
||||
m4_define([_LTDL_MODE], [])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
|
||||
[m4_define([_LTDL_MODE], [nonrecursive])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
|
||||
[m4_define([_LTDL_MODE], [recursive])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
|
||||
[m4_define([_LTDL_MODE], [subproject])])
|
||||
|
||||
m4_define([_LTDL_TYPE], [])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [installable],
|
||||
[m4_define([_LTDL_TYPE], [installable])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
|
||||
[m4_define([_LTDL_TYPE], [convenience])])
|
|
@ -0,0 +1,124 @@
|
|||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# 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 6 ltsugar.m4
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
|
||||
|
||||
|
||||
# lt_join(SEP, ARG1, [ARG2...])
|
||||
# -----------------------------
|
||||
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
|
||||
# associated separator.
|
||||
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
|
||||
# versions in m4sugar had bugs.
|
||||
m4_define([lt_join],
|
||||
[m4_if([$#], [1], [],
|
||||
[$#], [2], [[$2]],
|
||||
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
|
||||
m4_define([_lt_join],
|
||||
[m4_if([$#$2], [2], [],
|
||||
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
|
||||
|
||||
|
||||
# lt_car(LIST)
|
||||
# lt_cdr(LIST)
|
||||
# ------------
|
||||
# Manipulate m4 lists.
|
||||
# These macros are necessary as long as will still need to support
|
||||
# Autoconf-2.59, which quotes differently.
|
||||
m4_define([lt_car], [[$1]])
|
||||
m4_define([lt_cdr],
|
||||
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
|
||||
[$#], 1, [],
|
||||
[m4_dquote(m4_shift($@))])])
|
||||
m4_define([lt_unquote], $1)
|
||||
|
||||
|
||||
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
|
||||
# ------------------------------------------
|
||||
# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
|
||||
# Note that neither SEPARATOR nor STRING are expanded; they are appended
|
||||
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
|
||||
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
|
||||
# than defined and empty).
|
||||
#
|
||||
# This macro is needed until we can rely on Autoconf 2.62, since earlier
|
||||
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
|
||||
m4_define([lt_append],
|
||||
[m4_define([$1],
|
||||
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
|
||||
|
||||
|
||||
|
||||
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
|
||||
# ----------------------------------------------------------
|
||||
# Produce a SEP delimited list of all paired combinations of elements of
|
||||
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
|
||||
# has the form PREFIXmINFIXSUFFIXn.
|
||||
# Needed until we can rely on m4_combine added in Autoconf 2.62.
|
||||
m4_define([lt_combine],
|
||||
[m4_if(m4_eval([$# > 3]), [1],
|
||||
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
|
||||
[[m4_foreach([_Lt_prefix], [$2],
|
||||
[m4_foreach([_Lt_suffix],
|
||||
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
|
||||
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
|
||||
|
||||
|
||||
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
|
||||
# -----------------------------------------------------------------------
|
||||
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
|
||||
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
|
||||
m4_define([lt_if_append_uniq],
|
||||
[m4_ifdef([$1],
|
||||
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
|
||||
[lt_append([$1], [$2], [$3])$4],
|
||||
[$5])],
|
||||
[lt_append([$1], [$2], [$3])$4])])
|
||||
|
||||
|
||||
# lt_dict_add(DICT, KEY, VALUE)
|
||||
# -----------------------------
|
||||
m4_define([lt_dict_add],
|
||||
[m4_define([$1($2)], [$3])])
|
||||
|
||||
|
||||
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
|
||||
# --------------------------------------------
|
||||
m4_define([lt_dict_add_subkey],
|
||||
[m4_define([$1($2:$3)], [$4])])
|
||||
|
||||
|
||||
# lt_dict_fetch(DICT, KEY, [SUBKEY])
|
||||
# ----------------------------------
|
||||
m4_define([lt_dict_fetch],
|
||||
[m4_ifval([$3],
|
||||
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
|
||||
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
|
||||
|
||||
|
||||
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
|
||||
# -----------------------------------------------------------------
|
||||
m4_define([lt_if_dict_fetch],
|
||||
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
|
||||
[$5],
|
||||
[$6])])
|
||||
|
||||
|
||||
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
|
||||
# --------------------------------------------------------------
|
||||
m4_define([lt_dict_filter],
|
||||
[m4_if([$5], [], [],
|
||||
[lt_join(m4_quote(m4_default([$4], [[, ]])),
|
||||
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
|
||||
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
|
||||
])
|
|
@ -0,0 +1,23 @@
|
|||
# ltversion.m4 -- version numbers -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
|
||||
# Written by Scott James Remnant, 2004
|
||||
#
|
||||
# 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.
|
||||
|
||||
# @configure_input@
|
||||
|
||||
# serial 4179 ltversion.m4
|
||||
# This file is part of GNU Libtool
|
||||
|
||||
m4_define([LT_PACKAGE_VERSION], [2.4.6])
|
||||
m4_define([LT_PACKAGE_REVISION], [2.4.6])
|
||||
|
||||
AC_DEFUN([LTVERSION_VERSION],
|
||||
[macro_version='2.4.6'
|
||||
macro_revision='2.4.6'
|
||||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
||||
_LT_DECL(, macro_revision, 0)
|
||||
])
|
|
@ -0,0 +1,99 @@
|
|||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Scott James Remnant, 2004.
|
||||
#
|
||||
# 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 lt~obsolete.m4
|
||||
|
||||
# These exist entirely to fool aclocal when bootstrapping libtool.
|
||||
#
|
||||
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
|
||||
# which have later been changed to m4_define as they aren't part of the
|
||||
# exported API, or moved to Autoconf or Automake where they belong.
|
||||
#
|
||||
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
|
||||
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
|
||||
# using a macro with the same name in our local m4/libtool.m4 it'll
|
||||
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
|
||||
# and doesn't know about Autoconf macros at all.)
|
||||
#
|
||||
# So we provide this file, which has a silly filename so it's always
|
||||
# included after everything else. This provides aclocal with the
|
||||
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
|
||||
# because those macros already exist, or will be overwritten later.
|
||||
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
||||
#
|
||||
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
|
||||
# Yes, that means every name once taken will need to remain here until
|
||||
# we give up compatibility with versions before 1.7, at which point
|
||||
# we need to keep only those names which we still refer to.
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
|
||||
|
||||
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
|
||||
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
|
||||
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
|
||||
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
|
||||
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
|
||||
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
|
||||
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
|
||||
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
|
||||
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
|
||||
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
|
||||
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
|
||||
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
|
||||
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
|
||||
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
|
||||
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
|
||||
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
|
||||
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
|
||||
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
|
||||
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
|
||||
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
|
||||
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
|
||||
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
|
||||
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
|
||||
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
|
||||
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
|
||||
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
|
||||
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
|
||||
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
|
||||
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
|
||||
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
|
||||
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
|
||||
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
|
||||
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
|
||||
m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
|
||||
m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
|
||||
m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
|
||||
m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
|
||||
m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
|
||||
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
|
||||
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
|
|
@ -0,0 +1,215 @@
|
|||
#! /bin/sh
|
||||
# Common wrapper for a few potentially missing GNU programs.
|
||||
|
||||
scriptversion=2016-01-11.22; # UTC
|
||||
|
||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
||||
# Originally written 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try '$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
|
||||
--is-lightweight)
|
||||
# Used by our autoconf macros to check whether the available missing
|
||||
# script is modern enough.
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--run)
|
||||
# Back-compat with the calling convention used by older automake.
|
||||
shift
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
||||
to PROGRAM being missing or too old.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal autoconf autoheader autom4te automake makeinfo
|
||||
bison yacc flex lex help2man
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
||||
'g' are ignored when checking the name.
|
||||
|
||||
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
|
||||
|
||||
# Run the given program, remember its exit status.
|
||||
"$@"; st=$?
|
||||
|
||||
# If it succeeded, we are done.
|
||||
test $st -eq 0 && exit 0
|
||||
|
||||
# Also exit now if we it failed (or wasn't found), and '--version' was
|
||||
# passed; such an option is passed most likely to detect whether the
|
||||
# program is present and works.
|
||||
case $2 in --version|--help) exit $st;; esac
|
||||
|
||||
# Exit code 63 means version mismatch. This often happens when the user
|
||||
# tries to use an ancient version of a tool on a file that requires a
|
||||
# minimum version.
|
||||
if test $st -eq 63; then
|
||||
msg="probably too old"
|
||||
elif test $st -eq 127; then
|
||||
# Program was missing.
|
||||
msg="missing on your system"
|
||||
else
|
||||
# Program was found and executed, but failed. Give up.
|
||||
exit $st
|
||||
fi
|
||||
|
||||
perl_URL=http://www.perl.org/
|
||||
flex_URL=http://flex.sourceforge.net/
|
||||
gnu_software_URL=http://www.gnu.org/software
|
||||
|
||||
program_details ()
|
||||
{
|
||||
case $1 in
|
||||
aclocal|automake)
|
||||
echo "The '$1' program is part of the GNU Automake package:"
|
||||
echo "<$gnu_software_URL/automake>"
|
||||
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/autoconf>"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
autoconf|autom4te|autoheader)
|
||||
echo "The '$1' program is part of the GNU Autoconf package:"
|
||||
echo "<$gnu_software_URL/autoconf/>"
|
||||
echo "It also requires GNU m4 and Perl in order to run:"
|
||||
echo "<$gnu_software_URL/m4/>"
|
||||
echo "<$perl_URL>"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
give_advice ()
|
||||
{
|
||||
# Normalize program name to check for.
|
||||
normalized_program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
printf '%s\n' "'$1' is $msg."
|
||||
|
||||
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
||||
case $normalized_program in
|
||||
autoconf*)
|
||||
echo "You should only need it if you modified 'configure.ac',"
|
||||
echo "or m4 files included by it."
|
||||
program_details 'autoconf'
|
||||
;;
|
||||
autoheader*)
|
||||
echo "You should only need it if you modified 'acconfig.h' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'autoheader'
|
||||
;;
|
||||
automake*)
|
||||
echo "You should only need it if you modified 'Makefile.am' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'automake'
|
||||
;;
|
||||
aclocal*)
|
||||
echo "You should only need it if you modified 'acinclude.m4' or"
|
||||
echo "$configure_deps."
|
||||
program_details 'aclocal'
|
||||
;;
|
||||
autom4te*)
|
||||
echo "You might have modified some maintainer files that require"
|
||||
echo "the 'autom4te' program to be rebuilt."
|
||||
program_details 'autom4te'
|
||||
;;
|
||||
bison*|yacc*)
|
||||
echo "You should only need it if you modified a '.y' file."
|
||||
echo "You may want to install the GNU Bison package:"
|
||||
echo "<$gnu_software_URL/bison/>"
|
||||
;;
|
||||
lex*|flex*)
|
||||
echo "You should only need it if you modified a '.l' file."
|
||||
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||
echo "<$flex_URL>"
|
||||
;;
|
||||
help2man*)
|
||||
echo "You should only need it if you modified a dependency" \
|
||||
"of a man page."
|
||||
echo "You may want to install the GNU Help2man package:"
|
||||
echo "<$gnu_software_URL/help2man/>"
|
||||
;;
|
||||
makeinfo*)
|
||||
echo "You should only need it if you modified a '.texi' file, or"
|
||||
echo "any other file indirectly affecting the aspect of the manual."
|
||||
echo "You might want to install the Texinfo package:"
|
||||
echo "<$gnu_software_URL/texinfo/>"
|
||||
echo "The spurious makeinfo call might also be the consequence of"
|
||||
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
||||
echo "want to install GNU make:"
|
||||
echo "<$gnu_software_URL/make/>"
|
||||
;;
|
||||
*)
|
||||
echo "You might have modified some files without having the proper"
|
||||
echo "tools for further handling them. Check the 'README' file, it"
|
||||
echo "often tells you about the needed prerequisites for installing"
|
||||
echo "this package. You may also peek at any GNU archive site, in"
|
||||
echo "case some other package contains this missing '$1' program."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||
-e '2,$s/^/ /' >&2
|
||||
|
||||
# Propagate the correct exit status (expected to be 127 for a program
|
||||
# not found, 63 for a program that failed due to version mismatch).
|
||||
exit $st
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC0"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
|
@ -0,0 +1,88 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
|
||||
#include <gnome-autoar/gnome-autoar.h>
|
||||
#include <glib.h>
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static void
|
||||
my_handler_decide_dest (AutoarCompressor *compressor,
|
||||
GFile *dest)
|
||||
{
|
||||
char *path, *uri;
|
||||
path = g_file_get_path (dest);
|
||||
uri = g_file_get_uri (dest);
|
||||
g_print ("Destination Path: %s\n", path);
|
||||
g_print ("Destination URI: %s\n", uri);
|
||||
g_free (path);
|
||||
g_free (uri);
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_progress (AutoarCompressor *compressor,
|
||||
guint64 completed_size,
|
||||
guint completed_files,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("\rProgress: %"G_GUINT64_FORMAT" bytes, %u files read",
|
||||
completed_size,
|
||||
completed_files);
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_error (AutoarCompressor *compressor,
|
||||
GError *error,
|
||||
gpointer data)
|
||||
{
|
||||
g_printerr ("\nError %d: %s\n", error->code, error->message);
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_completed (AutoarCompressor *compressor,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("\nCompleted!\n");
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char* argv[])
|
||||
{
|
||||
AutoarCompressor *compressor;
|
||||
GList *source_files = NULL;
|
||||
g_autoptr (GFile) output_file = NULL;
|
||||
int i;
|
||||
|
||||
if (argc < 5) {
|
||||
g_printerr ("Usage: %s format filter output_dir source ...\n", argv[0]);
|
||||
return 255;
|
||||
}
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
output_file = g_file_new_for_commandline_arg (argv[3]);
|
||||
|
||||
for (i = 4; i < argc; ++i) {
|
||||
source_files = g_list_prepend (source_files,
|
||||
g_file_new_for_commandline_arg (argv[i]));
|
||||
}
|
||||
|
||||
source_files = g_list_reverse (source_files);
|
||||
|
||||
compressor = autoar_compressor_new (source_files,
|
||||
output_file,
|
||||
atoi (argv[1]),
|
||||
atoi (argv[2]),
|
||||
TRUE);
|
||||
g_signal_connect (compressor, "decide-dest", G_CALLBACK (my_handler_decide_dest), NULL);
|
||||
g_signal_connect (compressor, "progress", G_CALLBACK (my_handler_progress), NULL);
|
||||
g_signal_connect (compressor, "error", G_CALLBACK (my_handler_error), NULL);
|
||||
g_signal_connect (compressor, "completed", G_CALLBACK (my_handler_completed), NULL);
|
||||
|
||||
autoar_compressor_start (compressor, NULL);
|
||||
|
||||
g_list_free_full (source_files, g_object_unref);
|
||||
g_object_unref (compressor);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,983 @@
|
|||
#include <gnome-autoar/gnome-autoar.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
|
||||
typedef void (*FileScannedCallback) (GFile *scanned_file,
|
||||
GFileInfo *scanned_file_info,
|
||||
gpointer user_data);
|
||||
|
||||
typedef struct {
|
||||
GFile *input;
|
||||
GFile *output;
|
||||
GFile *reference;
|
||||
|
||||
GHashTable *unmatched_files;
|
||||
} ExtractTest;
|
||||
|
||||
static void extract_test_free (ExtractTest *test);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(ExtractTest, extract_test_free);
|
||||
|
||||
typedef struct {
|
||||
GCancellable *cancellable;
|
||||
|
||||
guint number_of_files;
|
||||
|
||||
GFile *suggested_destination;
|
||||
GFile *destination_to_suggest;
|
||||
|
||||
guint64 completed_size;
|
||||
guint completed_files;
|
||||
|
||||
GHashTable *conflict_files;
|
||||
GHashTable *conflict_files_actions;
|
||||
GHashTable *conflict_files_destinations;
|
||||
|
||||
GError *error;
|
||||
|
||||
gboolean cancelled_signalled;
|
||||
gboolean completed_signalled;
|
||||
} ExtractTestData;
|
||||
|
||||
static void extract_test_data_free (ExtractTestData *data);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(ExtractTestData, extract_test_data_free);
|
||||
|
||||
|
||||
#define TESTS_DIR_NAME "tests"
|
||||
#define EXTRACT_TESTS_DIR_NAME "files/extract"
|
||||
|
||||
GFile *extract_tests_dir;
|
||||
|
||||
|
||||
static gboolean
|
||||
remove_directory (GFile *directory)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GError *error = NULL;
|
||||
g_autoptr (GFileEnumerator) enumerator = NULL;
|
||||
|
||||
enumerator = g_file_enumerate_children (directory,
|
||||
G_FILE_ATTRIBUTE_STANDARD_NAME,
|
||||
G_FILE_QUERY_INFO_NONE,
|
||||
NULL, NULL);
|
||||
|
||||
if (enumerator) {
|
||||
GFileInfo *info;
|
||||
|
||||
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL) {
|
||||
g_autoptr (GFile) child;
|
||||
|
||||
child = g_file_get_child (directory, g_file_info_get_name (info));
|
||||
|
||||
if (!g_file_delete (child, NULL, &error)) {
|
||||
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_EMPTY)) {
|
||||
success = success && remove_directory (child);
|
||||
} else {
|
||||
success = FALSE;
|
||||
}
|
||||
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
}
|
||||
|
||||
g_file_delete (directory, NULL, &error);
|
||||
|
||||
if (error) {
|
||||
success = FALSE;
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
static ExtractTest*
|
||||
extract_test_new (const char *test_name)
|
||||
{
|
||||
ExtractTest *extract_test;
|
||||
g_autoptr (GFile) work_directory = NULL;
|
||||
GFile *input;
|
||||
GFile *output;
|
||||
GFile *reference;
|
||||
|
||||
work_directory = g_file_get_child (extract_tests_dir, test_name);
|
||||
if (g_file_query_file_type (work_directory, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY) {
|
||||
g_printerr ("%s: work directory does not exist", test_name);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
input = g_file_get_child (work_directory, "input");
|
||||
reference = g_file_get_child (work_directory, "reference");
|
||||
|
||||
if (g_file_query_file_type (input, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY ||
|
||||
g_file_query_file_type (reference, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY) {
|
||||
g_printerr ("%s: input or output directory does not exist\n", test_name);
|
||||
|
||||
g_object_unref (input);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
output = g_file_get_child (work_directory, "output");
|
||||
|
||||
remove_directory (output);
|
||||
|
||||
g_file_make_directory_with_parents (output, NULL, NULL);
|
||||
|
||||
extract_test = g_new0 (ExtractTest, 1);
|
||||
|
||||
extract_test->input = input;
|
||||
extract_test->reference = reference;
|
||||
extract_test->output = output;
|
||||
|
||||
extract_test->unmatched_files = g_hash_table_new_full (g_str_hash,
|
||||
g_str_equal,
|
||||
g_free,
|
||||
g_object_unref);
|
||||
|
||||
return extract_test;
|
||||
}
|
||||
|
||||
static void
|
||||
extract_test_free (ExtractTest *extract_test)
|
||||
{
|
||||
g_object_unref (extract_test->input);
|
||||
g_object_unref (extract_test->reference);
|
||||
g_object_unref (extract_test->output);
|
||||
|
||||
g_hash_table_destroy (extract_test->unmatched_files);
|
||||
|
||||
g_free (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
scanned_handler (AutoarExtractor *extractor,
|
||||
guint files,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->number_of_files = files;
|
||||
}
|
||||
|
||||
static GFile*
|
||||
decide_destination_handler (AutoarExtractor *extractor,
|
||||
GFile *dest,
|
||||
GList *files,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->suggested_destination = g_object_ref (dest);
|
||||
|
||||
if (data->destination_to_suggest != NULL) {
|
||||
g_object_ref (data->destination_to_suggest);
|
||||
}
|
||||
|
||||
return data->destination_to_suggest;
|
||||
}
|
||||
|
||||
static void
|
||||
progress_handler (AutoarExtractor *extractor,
|
||||
guint64 completed_size,
|
||||
guint completed_files,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->completed_size = completed_size;
|
||||
data->completed_files = completed_files;
|
||||
}
|
||||
|
||||
static AutoarConflictAction
|
||||
conflict_handler (AutoarExtractor *extractor,
|
||||
GFile *file,
|
||||
GFile **new_file,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
AutoarConflictAction action = AUTOAR_CONFLICT_SKIP;
|
||||
gpointer value;
|
||||
gboolean key_found;
|
||||
|
||||
g_hash_table_add (data->conflict_files, g_object_ref (file));
|
||||
|
||||
key_found = g_hash_table_lookup_extended (data->conflict_files_actions,
|
||||
file,
|
||||
NULL,
|
||||
&value);
|
||||
|
||||
if (key_found) {
|
||||
action = GPOINTER_TO_UINT (value);
|
||||
|
||||
switch (action) {
|
||||
case AUTOAR_CONFLICT_OVERWRITE:
|
||||
break;
|
||||
case AUTOAR_CONFLICT_CHANGE_DESTINATION:
|
||||
*new_file = g_object_ref (g_hash_table_lookup (data->conflict_files_destinations,
|
||||
file));
|
||||
break;
|
||||
case AUTOAR_CONFLICT_SKIP:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return action;
|
||||
}
|
||||
|
||||
static void
|
||||
error_handler (AutoarExtractor *extractor,
|
||||
GError *error,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->error = g_error_copy (error);
|
||||
}
|
||||
|
||||
static void
|
||||
completed_handler (AutoarExtractor *extractor,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->completed_signalled = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
cancelled_handler (AutoarExtractor *extractor,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTestData *data = user_data;
|
||||
|
||||
data->cancelled_signalled = TRUE;
|
||||
}
|
||||
|
||||
static ExtractTestData*
|
||||
extract_test_data_new_for_extract (AutoarExtractor *extractor)
|
||||
{
|
||||
ExtractTestData *data;
|
||||
|
||||
data = g_new0 (ExtractTestData, 1);
|
||||
|
||||
data->cancellable = g_cancellable_new ();
|
||||
|
||||
g_signal_connect (extractor, "scanned",
|
||||
G_CALLBACK (scanned_handler), data);
|
||||
g_signal_connect (extractor, "decide-destination",
|
||||
G_CALLBACK (decide_destination_handler), data);
|
||||
g_signal_connect (extractor, "progress",
|
||||
G_CALLBACK (progress_handler), data);
|
||||
g_signal_connect (extractor, "conflict",
|
||||
G_CALLBACK (conflict_handler), data);
|
||||
g_signal_connect (extractor, "completed",
|
||||
G_CALLBACK (completed_handler), data);
|
||||
g_signal_connect (extractor, "error",
|
||||
G_CALLBACK (error_handler), data);
|
||||
g_signal_connect (extractor, "cancelled",
|
||||
G_CALLBACK (cancelled_handler), data);
|
||||
|
||||
data->conflict_files = g_hash_table_new_full (g_file_hash,
|
||||
(GEqualFunc) g_file_equal,
|
||||
g_object_unref,
|
||||
NULL);
|
||||
data->conflict_files_actions = g_hash_table_new_full (g_file_hash,
|
||||
(GEqualFunc) g_file_equal,
|
||||
g_object_unref,
|
||||
NULL);
|
||||
data->conflict_files_destinations = g_hash_table_new_full (g_file_hash,
|
||||
(GEqualFunc) g_file_equal,
|
||||
g_object_unref,
|
||||
g_object_unref);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
static void
|
||||
extract_test_data_free (ExtractTestData *data)
|
||||
{
|
||||
g_object_unref (data->cancellable);
|
||||
|
||||
if (data->suggested_destination) {
|
||||
g_object_unref (data->suggested_destination);
|
||||
}
|
||||
|
||||
if (data->destination_to_suggest) {
|
||||
g_object_unref (data->destination_to_suggest);
|
||||
}
|
||||
|
||||
if (data->error) {
|
||||
g_error_free (data->error);
|
||||
}
|
||||
|
||||
g_hash_table_destroy (data->conflict_files);
|
||||
g_hash_table_destroy (data->conflict_files_actions);
|
||||
g_hash_table_destroy (data->conflict_files_destinations);
|
||||
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
setup_extract_tests_directory (const char *executable_path)
|
||||
{
|
||||
g_autoptr (GFile) tests_dir = NULL;
|
||||
gboolean found;
|
||||
|
||||
tests_dir = g_file_new_for_commandline_arg (executable_path);
|
||||
|
||||
found = FALSE;
|
||||
while (!found && g_file_has_parent (tests_dir, NULL)) {
|
||||
GFile *parent;
|
||||
g_autofree gchar *parent_basename;
|
||||
|
||||
parent = g_file_get_parent (tests_dir);
|
||||
parent_basename = g_file_get_basename (parent);
|
||||
|
||||
if (g_strcmp0 (parent_basename, TESTS_DIR_NAME) == 0) {
|
||||
found = TRUE;
|
||||
}
|
||||
|
||||
g_object_unref (tests_dir);
|
||||
tests_dir = parent;
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
g_printerr ("Tests directory not in executable path\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
extract_tests_dir = g_file_get_child (tests_dir, EXTRACT_TESTS_DIR_NAME);
|
||||
|
||||
if (!g_file_query_exists (extract_tests_dir, NULL)) {
|
||||
g_printerr ("Extract tests directory does not exist in tests directory\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Asserts that all files in @included are also in @including */
|
||||
static void
|
||||
scan_directory (GFile *directory,
|
||||
FileScannedCallback scanned_callback,
|
||||
gpointer callback_data)
|
||||
{
|
||||
GQueue *files;
|
||||
GQueue *file_infos;
|
||||
GFileEnumerator *enumerator;
|
||||
|
||||
files = g_queue_new ();
|
||||
file_infos = g_queue_new ();
|
||||
|
||||
g_queue_push_tail (files, g_object_ref (directory));
|
||||
g_queue_push_tail (file_infos,
|
||||
g_file_query_info (directory,
|
||||
G_FILE_ATTRIBUTE_STANDARD_NAME","
|
||||
G_FILE_ATTRIBUTE_STANDARD_TYPE,
|
||||
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
NULL, NULL));
|
||||
|
||||
while (!g_queue_is_empty (files)) {
|
||||
g_autoptr (GFile) file;
|
||||
g_autoptr (GFileInfo) file_info;
|
||||
|
||||
file = g_queue_pop_tail (files);
|
||||
file_info = g_queue_pop_tail (file_infos);
|
||||
|
||||
if (scanned_callback) {
|
||||
scanned_callback (file, file_info, callback_data);
|
||||
}
|
||||
|
||||
if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY) {
|
||||
enumerator = g_file_enumerate_children (file,
|
||||
G_FILE_ATTRIBUTE_STANDARD_NAME","
|
||||
G_FILE_ATTRIBUTE_STANDARD_TYPE,
|
||||
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
NULL, NULL);
|
||||
|
||||
if (enumerator) {
|
||||
GFile *child;
|
||||
GFileInfo *child_info;
|
||||
|
||||
child_info = g_file_enumerator_next_file (enumerator, NULL, NULL);
|
||||
while (child_info != NULL) {
|
||||
child = g_file_get_child (file, g_file_info_get_name (child_info));
|
||||
|
||||
g_queue_push_tail (files, child);
|
||||
g_queue_push_tail (file_infos, child_info);
|
||||
|
||||
child_info = g_file_enumerator_next_file (enumerator, NULL, NULL);
|
||||
}
|
||||
|
||||
g_object_unref (enumerator);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_queue_free_full (files, g_object_unref);
|
||||
g_queue_free_full (file_infos, g_object_unref);
|
||||
}
|
||||
|
||||
static void
|
||||
output_file_scanned (GFile *scanned_file,
|
||||
GFileInfo *scanned_file_info,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTest *extract_test = user_data;
|
||||
char *relative_path;
|
||||
|
||||
relative_path = scanned_file == extract_test->output ?
|
||||
g_strdup ("") :
|
||||
g_file_get_relative_path (extract_test->output,
|
||||
scanned_file);
|
||||
|
||||
g_hash_table_insert (extract_test->unmatched_files, relative_path,
|
||||
g_object_ref (scanned_file_info));
|
||||
}
|
||||
|
||||
static void
|
||||
reference_file_scanned (GFile *scanned_file,
|
||||
GFileInfo *scanned_file_info,
|
||||
gpointer user_data)
|
||||
{
|
||||
ExtractTest *extract_test = user_data;
|
||||
g_autofree char *relative_path;
|
||||
GFileInfo *corresponding_file_info;
|
||||
|
||||
relative_path = scanned_file == extract_test->reference ?
|
||||
g_strdup ("") :
|
||||
g_file_get_relative_path (extract_test->reference,
|
||||
scanned_file);
|
||||
|
||||
corresponding_file_info = g_hash_table_lookup (extract_test->unmatched_files,
|
||||
relative_path);
|
||||
|
||||
g_assert_nonnull (corresponding_file_info);
|
||||
if (corresponding_file_info != NULL) {
|
||||
g_assert_cmpuint (g_file_info_get_file_type (scanned_file_info),
|
||||
==,
|
||||
g_file_info_get_file_type (corresponding_file_info));
|
||||
|
||||
g_hash_table_remove (extract_test->unmatched_files, relative_path);
|
||||
}
|
||||
}
|
||||
|
||||
/* Asserts that the output and reference directory match */
|
||||
static void
|
||||
assert_reference_and_output_match (ExtractTest *extract_test)
|
||||
{
|
||||
scan_directory (extract_test->output, output_file_scanned, extract_test);
|
||||
scan_directory (extract_test->reference, reference_file_scanned, extract_test);
|
||||
g_assert_cmpuint (g_hash_table_size (extract_test->unmatched_files), ==, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_same_name (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-same-name");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_different_name (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextractdifferent.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract
|
||||
* └── arextractdifferent.txt
|
||||
*
|
||||
* 1 directory, 1 file
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-different-name");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_multiple_files_same_name (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract
|
||||
* ├── arextract_nested
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 2 directories, 2 files
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract
|
||||
* ├── arextract_nested
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 2 directories, 2 files
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-multiple-files-same-name");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 4);
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_multiple_files_different_name (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* ├── arextract
|
||||
* │ ├── arextract_nested
|
||||
* │ │ └── arextract.txt
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 2 directories, 3 files
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract
|
||||
* ├── arextract
|
||||
* │ ├── arextract_nested
|
||||
* │ │ └── arextract.txt
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 3 directories, 3 files
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-multiple-files-different-name");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 5);
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_conflict_overwrite (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (GFile) conflict_file = NULL;
|
||||
g_autoptr (GFile) reference_file = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-conflict-overwrite");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
reference_file = g_file_get_child (extract_test->reference,
|
||||
"arextract.txt");
|
||||
conflict_file = g_file_get_child (extract_test->output,
|
||||
"arextract.txt");
|
||||
|
||||
g_file_copy (reference_file, conflict_file, G_FILE_COPY_NONE,
|
||||
NULL, NULL, NULL, NULL);
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_true (g_hash_table_contains (data->conflict_files,
|
||||
conflict_file));
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_conflict_new_destination (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* ├── arextract_new.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 2 files
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (GFile) conflict_file = NULL;
|
||||
g_autoptr (GFile) reference_file = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-conflict-new-destination");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
reference_file = g_file_get_child (extract_test->reference,
|
||||
"arextract.txt");
|
||||
conflict_file = g_file_get_child (extract_test->output,
|
||||
"arextract.txt");
|
||||
|
||||
g_file_copy (reference_file, conflict_file, G_FILE_COPY_NONE,
|
||||
NULL, NULL, NULL, NULL);
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
g_hash_table_insert (data->conflict_files_actions,
|
||||
g_object_ref (conflict_file),
|
||||
GUINT_TO_POINTER (AUTOAR_CONFLICT_CHANGE_DESTINATION));
|
||||
|
||||
g_hash_table_insert (data->conflict_files_destinations,
|
||||
g_object_ref (conflict_file),
|
||||
g_file_get_child (extract_test->output,
|
||||
"arextract_new.txt"));
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_true (g_hash_table_contains (data->conflict_files,
|
||||
conflict_file));
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_conflict_skip_file (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (GFile) conflict_file = NULL;
|
||||
g_autoptr (GFile) reference_file = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-conflict-skip-file");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
reference_file = g_file_get_child (extract_test->reference,
|
||||
"arextract.txt");
|
||||
conflict_file = g_file_get_child (extract_test->output,
|
||||
"arextract.txt");
|
||||
|
||||
g_file_copy (reference_file, conflict_file, G_FILE_COPY_NONE,
|
||||
NULL, NULL, NULL, NULL);
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
g_hash_table_insert (data->conflict_files_actions,
|
||||
g_object_ref (conflict_file),
|
||||
GUINT_TO_POINTER (AUTOAR_CONFLICT_SKIP));
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_true (g_hash_table_contains (data->conflict_files,
|
||||
conflict_file));
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_one_file_error_file_over_directory (void)
|
||||
{
|
||||
/* The dummy file in this test is not relevant to the test itself, but it
|
||||
* was required in order to add the directory to the .git repo
|
||||
*
|
||||
* arextract.zip
|
||||
* └── arextract
|
||||
*
|
||||
* 0 directories, 1 file
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── arextract
|
||||
* └── dummy
|
||||
*
|
||||
* 1 directory, 1 files
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (GFile) conflict_directory = NULL;
|
||||
g_autoptr (GFile) dummy_file = NULL;
|
||||
g_autoptr (GFileOutputStream) out = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-one-file-error-file-over-directory");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
conflict_directory = g_file_get_child (extract_test->output,
|
||||
"arextract");
|
||||
dummy_file = g_file_get_child (conflict_directory, "dummy");
|
||||
|
||||
g_file_make_directory (conflict_directory, NULL, NULL);
|
||||
|
||||
out = g_file_create (dummy_file, G_FILE_CREATE_NONE, NULL, NULL);
|
||||
g_output_stream_close (G_OUTPUT_STREAM (out), NULL, NULL);
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 1);
|
||||
g_assert_true (g_hash_table_contains (data->conflict_files,
|
||||
conflict_directory));
|
||||
g_assert_null (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
test_change_extract_destination (void)
|
||||
{
|
||||
/* arextract.zip
|
||||
* └── arextract
|
||||
* ├── arextract_nested
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 2 directories, 2 files
|
||||
*
|
||||
*
|
||||
* ref
|
||||
* └── new_destination
|
||||
* ├── arextract_nested
|
||||
* │ └── arextract.txt
|
||||
* └── arextract.txt
|
||||
*
|
||||
* 2 directories, 2 files
|
||||
*/
|
||||
|
||||
g_autoptr (ExtractTest) extract_test = NULL;
|
||||
g_autoptr (ExtractTestData) data = NULL;
|
||||
g_autoptr (GFile) archive = NULL;
|
||||
g_autoptr (AutoarExtractor) extractor = NULL;
|
||||
|
||||
extract_test = extract_test_new ("test-change-extract-destination");
|
||||
|
||||
if (!extract_test) {
|
||||
g_assert_nonnull (extract_test);
|
||||
return;
|
||||
}
|
||||
|
||||
archive = g_file_get_child (extract_test->input, "arextract.zip");
|
||||
|
||||
extractor = autoar_extractor_new (archive, extract_test->output);
|
||||
|
||||
data = extract_test_data_new_for_extract (extractor);
|
||||
data->destination_to_suggest = g_file_get_child (extract_test->output,
|
||||
"new_destination");
|
||||
|
||||
autoar_extractor_start (extractor, data->cancellable);
|
||||
|
||||
g_assert_cmpuint (data->number_of_files, ==, 4);
|
||||
g_assert_no_error (data->error);
|
||||
g_assert_true (data->completed_signalled);
|
||||
assert_reference_and_output_match (extract_test);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_test_suite (void)
|
||||
{
|
||||
g_test_add_func ("/autoar-extract/test-one-file-same-name",
|
||||
test_one_file_same_name);
|
||||
g_test_add_func ("/autoar-extract/test-one-file-different-name",
|
||||
test_one_file_different_name);
|
||||
g_test_add_func ("/autoar-extract/test-multiple-files-same-name",
|
||||
test_multiple_files_same_name);
|
||||
g_test_add_func ("/autoar-extract/test-multiple-files-different-name",
|
||||
test_multiple_files_different_name);
|
||||
|
||||
g_test_add_func ("/autoar-extract/test-one-file-conflict-overwrite",
|
||||
test_one_file_conflict_overwrite);
|
||||
g_test_add_func ("/autoar-extract/test-one-file-conflict-new-destination",
|
||||
test_one_file_conflict_new_destination);
|
||||
g_test_add_func ("/autoar-extract/test-one-file-conflict-skip-file",
|
||||
test_one_file_conflict_skip_file);
|
||||
|
||||
g_test_add_func ("/autoar-extract/test-one-file-error-file-over-directory",
|
||||
test_one_file_error_file_over_directory);
|
||||
|
||||
g_test_add_func ("/autoar-extract/test-change-extract-destination",
|
||||
test_change_extract_destination);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
{
|
||||
int tests_result;
|
||||
|
||||
if (!setup_extract_tests_directory (argv[0])) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
g_test_set_nonfatal_assertions ();
|
||||
|
||||
setup_test_suite ();
|
||||
|
||||
tests_result = g_test_run ();
|
||||
|
||||
g_object_unref (extract_tests_dir);
|
||||
|
||||
return tests_result;
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
|
||||
#include <gnome-autoar/gnome-autoar.h>
|
||||
#include <gio/gio.h>
|
||||
#include <locale.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static void
|
||||
my_handler_scanned (AutoarExtractor *extractor,
|
||||
guint files,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("Scanning OK, %d files to be extracted.\n", files);
|
||||
}
|
||||
|
||||
static GFile*
|
||||
my_handler_decide_destination (AutoarExtractor *extractor,
|
||||
GFile *dest,
|
||||
GList *files,
|
||||
gpointer data)
|
||||
{
|
||||
char *path, *uri;
|
||||
GList *l;
|
||||
|
||||
path = g_file_get_path (dest);
|
||||
uri = g_file_get_uri (dest);
|
||||
g_print ("Destination Path: %s\n", path);
|
||||
g_print ("Destination URI: %s\n", uri);
|
||||
g_free (path);
|
||||
g_free (uri);
|
||||
|
||||
|
||||
for (l = files; l != NULL; l = l->next) {
|
||||
char *pathname;
|
||||
|
||||
pathname = g_file_get_path (l->data);
|
||||
g_print ("File: %s\n", pathname);
|
||||
|
||||
g_free (pathname);
|
||||
}
|
||||
|
||||
return g_object_ref (dest);
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_progress (AutoarExtractor *extractor,
|
||||
guint64 completed_size,
|
||||
guint completed_files,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("\rProgress: Archive Size %.2lf %%, Files %.2lf %%",
|
||||
((double)(completed_size)) * 100 / autoar_extractor_get_total_size (extractor),
|
||||
((double)(completed_files)) * 100 / autoar_extractor_get_total_files (extractor));
|
||||
}
|
||||
|
||||
static AutoarConflictAction
|
||||
my_handler_conflict (AutoarExtractor *extractor,
|
||||
GFile *file,
|
||||
GFile **new_file,
|
||||
gpointer data)
|
||||
{
|
||||
g_autofree char *path;
|
||||
|
||||
path = g_file_get_path (file);
|
||||
|
||||
g_print ("Conflict on: %s\n", path);
|
||||
|
||||
return AUTOAR_CONFLICT_OVERWRITE;
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_error (AutoarExtractor *extractor,
|
||||
GError *error,
|
||||
gpointer data)
|
||||
{
|
||||
g_printerr ("\nError %d: %s\n", error->code, error->message);
|
||||
}
|
||||
|
||||
static void
|
||||
my_handler_completed (AutoarExtractor *extractor,
|
||||
gpointer data)
|
||||
{
|
||||
g_print ("\nCompleted!\n");
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
{
|
||||
AutoarExtractor *extractor;
|
||||
char *content;
|
||||
g_autoptr (GFile) source = NULL;
|
||||
g_autoptr (GFile) output = NULL;
|
||||
|
||||
if (argc < 3) {
|
||||
g_printerr ("Usage: %s archive_file output_dir\n",
|
||||
argv[0]);
|
||||
return 255;
|
||||
}
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
content = NULL;
|
||||
|
||||
source = g_file_new_for_commandline_arg (argv[1]);
|
||||
output = g_file_new_for_commandline_arg (argv[2]);
|
||||
extractor = autoar_extractor_new (source, output);
|
||||
|
||||
autoar_extractor_set_delete_after_extraction (extractor, FALSE);
|
||||
|
||||
g_signal_connect (extractor, "scanned", G_CALLBACK (my_handler_scanned), NULL);
|
||||
g_signal_connect (extractor, "decide-destination", G_CALLBACK (my_handler_decide_destination), NULL);
|
||||
g_signal_connect (extractor, "progress", G_CALLBACK (my_handler_progress), NULL);
|
||||
g_signal_connect (extractor, "conflict", G_CALLBACK (my_handler_conflict), NULL);
|
||||
g_signal_connect (extractor, "error", G_CALLBACK (my_handler_error), NULL);
|
||||
g_signal_connect (extractor, "completed", G_CALLBACK (my_handler_completed), NULL);
|
||||
|
||||
autoar_extractor_start (extractor, NULL);
|
||||
|
||||
g_object_unref (extractor);
|
||||
g_free (content);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/* vim: set sw=2 ts=2 sts=2 et: */
|
||||
|
||||
#include <gnome-autoar/gnome-autoar.h>
|
||||
#include <gnome-autoar/autoar-gtk.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static gboolean
|
||||
before_deleted (GtkWindow *window,
|
||||
GdkEvent *event,
|
||||
GtkWidget *simple)
|
||||
{
|
||||
int format;
|
||||
int filter;
|
||||
char *str;
|
||||
|
||||
autoar_gtk_chooser_simple_get (simple, &format, &filter);
|
||||
if (!format || !filter) {
|
||||
GtkWidget *warning;
|
||||
warning = gtk_message_dialog_new (window,
|
||||
GTK_DIALOG_MODAL,
|
||||
GTK_MESSAGE_WARNING,
|
||||
GTK_BUTTONS_OK,
|
||||
"Your choice is not valid!");
|
||||
gtk_dialog_run (GTK_DIALOG (warning));
|
||||
gtk_widget_destroy (warning);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
puts (str = autoar_format_filter_get_description (format, filter));
|
||||
free (str);
|
||||
puts (str = autoar_format_filter_get_extension (format, filter));
|
||||
free (str);
|
||||
|
||||
gtk_main_quit();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *simple;
|
||||
int format, filter;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window), argv[0]);
|
||||
|
||||
format = (argc >= 2) ? atoi (argv[1]) : 0;
|
||||
filter = (argc >= 3) ? atoi (argv[2]) : 0;
|
||||
|
||||
simple = autoar_gtk_chooser_simple_new (format, filter);
|
||||
gtk_container_add (GTK_CONTAINER (window), simple);
|
||||
g_signal_connect (window, "delete-event", G_CALLBACK (before_deleted), simple);
|
||||
|
||||
gtk_widget_show_all (window);
|
||||
|
||||
gtk_main ();
|
||||
|
||||
return 0;
|
||||
}
|