Age | Commit message (Collapse) | Author | Files | Lines |
|
closes https://github.com/mate-desktop/engrampa/issues/200
|
|
For instance, application/x-lha is an alias of application/x-lzh-compressed,
mime_type_desc.mime_type should only store non duplicated primary mime-types,
to avoid duplicates in the warehouse.
|
|
|
|
|
|
|
|
|
|
|
|
test:
$ ./autogen.sh --enable-debug=profile --prefix=/usr
<cut>
Configuration:
Source code location: .
Compiler: gcc
Compiler flags: -g -pg
Warning flags: -Wall -Wmissing-prototypes
Linker flags: -pg
Caja support: yes
PackageKit support: yes
Run in place no
Use libmagic: no
JSON support: yes
Now type `make' to compile engrampa
$ ./autogen.sh --enable-debug --prefix=/usr
<cut>
Configuration:
Source code location: .
Compiler: gcc
Compiler flags: -g -O0
Warning flags: -Wall -Wmissing-prototypes
Linker flags:
Caja support: yes
PackageKit support: yes
Run in place no
Use libmagic: no
JSON support: yes
Now type `make' to compile engrampa
$ grep MATE_ENABLE_DEBUG config.h
|
|
$ file -b --mime-type ~/test.tar.Z
application/x-compress
$ hexdump -C -n 2 ~/test.tar.Z
00000000 1f 9d |..|
00000002
$ file -b --mime-type ~/atril-1.23.1-1.fc30.src.rpm
application/x-rpm
$ hexdump -C -n 4 ~/atril-1.23.1-1.fc30.src.rpm
00000000 ed ab ee db |....|
00000004
$ file -b --mime-type ~/test.lzh
application/x-lzh-compressed
$ hexdump -C -s 2 -n 3 ~/test.lzh
00000002 2d 6c 68 |-lh|
00000005
|
|
|
|
$ tar cafv ~/test.tar.zst ~/test
$ xdg-mime query filetype ~/test.tar.zst
application/x-zstd-compressed-tar
Test:
$ CFLAGS="-g -O0" ./autogen.sh --enable-magic --enable-packagekit --prefix=/usr && make && sudo make install
$ engrampa ~/test.tar.zst
|
|
|
|
MIME type is application/x-zstd:
$ lorem-ipsum-generator -p 10000 -l -f plain > lorem.txt
$ zstd lorem.txt
$ file -b --mime-type lorem.txt.zst
application/x-zstd
Test:
$ CFLAGS="-g -O0" ./autogen.sh --enable-magic --enable-packagekit --prefix=/usr && make && sudo make install
|
|
Changes:
Replace application/x-ar with application/x-archive
ar magic number: "!<arch>\n"
deb magic number (Debian 0.93+): "!<arch>\ndebian-binary"
REF:
https://en.wikipedia.org/wiki/Ar_(Unix)
https://en.wikipedia.org/wiki/Deb_(file_format)
Test:
$ touch a && touch b && ar r test.ar a b && cp test.ar test-2.a
$ xdg-mime query filetype test.ar
application/x-archive
$ xdg-mime query filetype dftp_2.2-1.deb
application/vnd.debian.binary-package
$ gio info test.ar | grep content-type
standard::content-type: application/x-archive
standard::fast-content-type: application/x-archive
$ gio info dftp_2.2-1.deb | grep content-type
standard::content-type: application/vnd.debian.binary-package
standard::fast-content-type: application/vnd.debian.binary-package
$ hexdump -C -n 8 test.ar
00000000 21 3c 61 72 63 68 3e 0a |!<arch>.|
00000008
$ hexdump -C -n 21 dftp_2.2-1.deb
00000000 21 3c 61 72 63 68 3e 0a 64 65 62 69 61 6e 2d 62 |!<arch>.debian-b|
00000010 69 6e 61 72 79 |inary|
00000015
$ ./autogen.sh --prefix=/usr --disable-magic && make && sudo make install
|
|
|
|
mkdtemp():
/* Since glibc 2.19: */ _DEFAULT_SOURCE
|| /* Glibc 2.19 and earlier: */ _BSD_SOURCE
|| /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200809L
_POSIX_C_SOURCE 200809L is enabled by _XOPEN_SOURCE >= 700.
Ref: http://man7.org/linux/man-pages/man7/feature_test_macros.7.html
|
|
|
|
USAGE: ./autogen.sh --enable-compile-warnings=no/minimum/yes/maximum/error@
If --enable-compile-warnings is not provided, the default is
--enable-compile-warnings=yes
|
|
test:
$ touch " test"
$ touch " test"
$ ar r test.a " test" " test"
$ ar tv test.a
rw-rw-r-- 1000/1001 0 Sep 18 14:58 2019 test
rw-rw-r-- 1000/1001 0 Sep 18 14:58 2019 test
$ engrampa test.a
|
|
gio returns "application/x-lha" in get_mime_type_from_content
test:
$ LANG=C gio info 1.lzh | grep content-type
standard::content-type: application/x-lha
standard::fast-content-type: application/x-lha
|
|
|
|
|
|
|
|
LHA media type is application/x-lzh-compressed
$ file --mime-type ~/test.lzh
/home/robert/test.lzh: application/x-lzh-compressed
|
|
void g_list_free_full (GList *list, GDestroyNotify free_func);
void g_slist_free_full (GList *list, GDestroyNotify free_func);
Convenience methods, which free all the memory used by a list,
and calls free_func on every element's data.
|
|
|
|
Based on https://github.com/GNOME/file-roller/commit/9a37eb44a8ec5d0a20ea78c9a44c7c9e50bb508f#diff-41f5e2a364a93ff790f678ba58265d43
|
|
gtk-utils.c:171:3: warning: ‘gtk_image_new_from_stock’ is deprecated: Use 'gtk_image_new_from_icon_name' instead [-Wdeprecated-declarations]
171 | image = gtk_image_new_from_stock (text, GTK_ICON_SIZE_BUTTON);
| ^~~~~
gtk-utils.c:173:3: warning: ‘gtk_image_new_from_stock’ is deprecated: Use 'gtk_image_new_from_icon_name' instead [-Wdeprecated-declarations]
173 | image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
| ^~~~~
|
|
cppcheck --enable=unusedFunction .
|
|
|
|
dlg-package-installer.c:294:9: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations]
294 | GTK_STOCK_DIALOG_ERROR,
| ^~~~~~~~~~~~~~~~~~~~~~
dlg-package-installer.c:297:9: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations]
297 | GTK_STOCK_CANCEL, GTK_RESPONSE_NO,
| ^~~~~~~~~~~~~~~~
|
|
$ cppcheck --enable=unusedFunction .
[src/gio-utils.c:1091]: (style) The function 'g_copy_uri_async' is never used.
[src/gio-utils.c:1060]: (style) The function 'g_copy_uris_async' is never used.
|
|
get_time_string() is a local function that wraps strftime().
In contrast to strftime(), g_date_time_format() always produces
an UTF-8 string, regardless of the current locale.
|
|
closes #303
|
|
closes #299
|
|
Remove 317 warnings [-Wdiscarded-qualifiers].
|
|
fr-archive.c:45:5: warning: "ENABLE_MAGIC" is not defined, evaluates to 0 [-Wundef]
fr-archive.c:519:5: warning: "ENABLE_MAGIC" is not defined, evaluates to 0 [-Wundef]
|
|
|
|
caja-engrampa.c:439:2: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘const struct _GTypeInfo’} [-Wmissing-field-initializers]
eggtreemultidnd.c:70:2: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘const struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command.c:98:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-7z.c:750:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-ace.c:334:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-alz.c:397:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-ar.c:383:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-arj.c:429:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command.c:98:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-cfile.c:692:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-cpio.c:319:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-dpkg.c:305:17: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-iso.c:308:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-jar.c:234:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-lha.c:408:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-lrzip.c:262:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-rar.c:832:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-rpm.c:319:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-tar.c:1267:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-unarchiver.c:361:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-unstuff.c:381:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-zip.c:513:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-command-zoo.c:419:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-window.c:839:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-list-model.c:148:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘const struct _GTypeInfo’} [-Wmissing-field-initializers]
fr-process.c:248:3: warning: missing initializer for field ‘value_table’ of ‘GTypeInfo’ {aka ‘struct _GTypeInfo’} [-Wmissing-field-initializers]
ui.h:32:2: warning: missing initializer for field ‘accelerator’ of ‘GtkActionEntry’ {aka ‘struct _GtkActionEntry’} [-Wmissing-field-initializers]
ui.h:33:2: warning: missing initializer for field ‘accelerator’ of ‘GtkActionEntry’ {aka ‘struct _GtkActionEntry’} [-Wmissing-field-initializers]
ui.h:34:2: warning: missing initializer for field ‘accelerator’ of ‘GtkActionEntry’ {aka ‘struct _GtkActionEntry’} [-Wmissing-field-initializers]
ui.h:35:2: warning: missing initializer for field ‘accelerator’ of ‘GtkActionEntry’ {aka ‘struct _GtkActionEntry’} [-Wmissing-field-initializers]
ui.h:36:2: warning: missing initializer for field ‘accelerator’ of ‘GtkActionEntry’ {aka ‘struct _GtkActionEntry’} [-Wmissing-field-initializers]
|
|
dlg-batch-add.c:513:83: warning: cast from function call of type ‘gint’ {aka ‘int’} to non-matching type ‘double’ [-Wbad-function-cast]
513 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("a_volume_spinbutton")), (double) g_settings_get_int (data->settings, PREF_BATCH_ADD_VOLUME_SIZE) / MEGABYTE);
| ^
dlg-new.c:321:81: warning: cast from function call of type ‘gint’ {aka ‘int’} to non-matching type ‘double’ [-Wbad-function-cast]
321 | gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->n_volume_spinbutton), (double) g_settings_get_int (settings, PREF_BATCH_ADD_VOLUME_SIZE) / MEGABYTE);
| ^
|
|
actions.c:245:24: warning: declaration of ‘dialog’ shadows a previous local [-Wshadow]
caja-engrampa.c:137:17: warning: declaration of ‘file’ shadows a previous local [-Wshadow]
caja-engrampa.c:58:17: warning: declaration of ‘file’ shadows a previous local [-Wshadow]
dlg-add-files.c:120:9: warning: declaration of ‘uri’ shadows a previous local [-Wshadow]
fr-window.c:4935:11: warning: declaration of ‘value’ shadows a previous local [-Wshadow]
|
|
Closes https://github.com/mate-desktop/engrampa/issues/291
Test:
touch test.txt
zip test.zip test.txt
mv test.zip test.jar
cat << EOF > HelloWorld.java
package org.mate.tests;
class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello, World");
}
}
EOF
engrampa -a test.jar HelloWorld.java
jar tf test.jar
Output:
test.txt
org/mate/tests/HelloWorld.java
|
|
str is empty: if (*str == '\0') {...}
|
|
fr-command.h:205:16: warning: redundant redeclaration of ‘fr_command_is_capable_of’ [-Wredundant-decls]
|
|
java-utils.c:310:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
310 | for (i = length; (i >= 0) && (end == 0); i-- )
| ^~
|
|
Unused since https://github.com/mate-desktop/engrampa/commit/0d3a5b087f4bb6c118abe34a14ea27b86583f812
|
|
|
|
Fix compiler warning:
comparison of integers of different signs: 'int' and 'guint' (aka 'unsigned int') [-Wsign-compare]
|
|
closes https://github.com/mate-desktop/engrampa/issues/283
|
|
Detected by clang static analyzer:
$ scan-build -enable-checker alpha.deadcode.UnreachableCode --keep-cc -o html-report make
...
exit (EXIT_SUCCESS);
return TRUE; /* <= This statement is never executed */
...
|