├── .build.yml ├── .github ├── FUNDING.yml ├── issue_template.md └── workflows │ └── build.yml ├── .gitmodules ├── .travis.yml ├── .tx ├── config └── config_20221028215415.bak ├── AUTHORS ├── COPYING ├── HACKING ├── Makefile.am ├── NEWS ├── README ├── README-DISTRIBUTIONS ├── autogen.sh ├── caja ├── Makefile.am ├── caja-engrampa.c ├── caja-engrampa.h ├── engrampa-module.c ├── libcaja-engrampa.caja-extension.desktop.in.in └── meson.build ├── configure.ac ├── data ├── Makefile.am ├── engrampa.1 ├── engrampa.appdata.xml.in.in ├── engrampa.desktop.in.in ├── icons │ ├── 16x16 │ │ ├── actions │ │ │ ├── add-files-to-archive.png │ │ │ ├── add-folder-to-archive.png │ │ │ └── extract-archive.png │ │ └── apps │ │ │ └── engrampa.png │ ├── 22x22 │ │ └── apps │ │ │ └── engrampa.png │ ├── 24x24 │ │ ├── actions │ │ │ ├── add-files-to-archive.png │ │ │ ├── add-folder-to-archive.png │ │ │ └── extract-archive.png │ │ └── apps │ │ │ └── engrampa.png │ ├── 32x32 │ │ └── apps │ │ │ └── engrampa.png │ ├── Makefile.am │ ├── meson.build │ └── scalable │ │ └── apps │ │ └── engrampa.svg ├── meson.build ├── org.mate.Engrampa.service.in ├── org.mate.engrampa.gschema.xml.in ├── packages.match ├── packages.match.in └── update-packages-match ├── engrampa.pot ├── git.mk ├── help ├── C │ ├── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png │ ├── index.docbook │ └── legal.xml ├── ChangeLog ├── LINGUAS ├── Makefile.am ├── af │ └── af.po ├── am │ └── am.po ├── ar │ └── ar.po ├── as │ └── as.po ├── ast │ └── ast.po ├── az │ └── az.po ├── be │ └── be.po ├── bg │ ├── bg.po │ └── figures │ │ ├── engrampa_leftarrow.png │ │ └── engrampa_main_window.png ├── bn │ └── bn.po ├── bn_IN │ └── bn_IN.po ├── br │ └── br.po ├── bs │ └── bs.po ├── ca │ ├── ca.po │ └── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png ├── ca@valencia │ └── ca@valencia.po ├── cmn │ └── cmn.po ├── crh │ └── crh.po ├── cs │ ├── cs.po │ └── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png ├── cy │ └── cy.po ├── da │ └── da.po ├── de │ ├── de.po │ └── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png ├── dz │ └── dz.po ├── el │ ├── el.po │ └── figures │ │ └── engrampa_main_window.png ├── en_AU │ └── en_AU.po ├── en_CA │ └── en_CA.po ├── en_GB │ └── en_GB.po ├── engrampa.omf.in ├── engrampa.pot ├── eo │ └── eo.po ├── es │ ├── es.po │ └── figures │ │ ├── engrampa_leftarrow.png │ │ └── engrampa_main_window.png ├── et │ └── et.po ├── eu │ └── eu.po ├── fa │ └── fa.po ├── fi │ ├── fi.po │ └── figures │ │ ├── engrampa_leftarrow.png │ │ └── engrampa_main_window.png ├── fr │ ├── figures │ │ ├── engrampa_leftarrow.png │ │ └── engrampa_main_window.png │ └── fr.po ├── ga │ └── ga.po ├── gl │ └── gl.po ├── gu │ └── gu.po ├── he │ └── he.po ├── hi │ └── hi.po ├── hr │ └── hr.po ├── hu │ └── hu.po ├── hy │ └── hy.po ├── id │ └── id.po ├── is │ └── is.po ├── it │ ├── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png │ └── it.po ├── ja │ ├── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png │ └── ja.po ├── ka │ └── ka.po ├── kk │ └── kk.po ├── kn │ └── kn.po ├── ko │ └── ko.po ├── ku │ └── ku.po ├── ky │ └── ky.po ├── li │ └── li.po ├── lt │ └── lt.po ├── lv │ └── lv.po ├── mai │ └── mai.po ├── meson.build ├── mg │ └── mg.po ├── mk │ └── mk.po ├── ml │ └── ml.po ├── mn │ └── mn.po ├── mr │ └── mr.po ├── ms │ └── ms.po ├── nb │ └── nb.po ├── ne │ └── ne.po ├── nl │ └── nl.po ├── nn │ └── nn.po ├── nso │ └── nso.po ├── oc │ └── oc.po ├── or │ └── or.po ├── pa │ └── pa.po ├── pl │ └── pl.po ├── pt │ └── pt.po ├── pt_BR │ └── pt_BR.po ├── ro │ └── ro.po ├── ru │ └── ru.po ├── si │ └── si.po ├── sk │ └── sk.po ├── sl │ └── sl.po ├── sq │ └── sq.po ├── sr │ └── sr.po ├── sr@latin │ └── sr@latin.po ├── sv │ ├── figures │ │ ├── engrampa_leftarrow.png │ │ └── engrampa_main_window.png │ └── sv.po ├── ta │ └── ta.po ├── te │ └── te.po ├── th │ └── th.po ├── tk │ └── tk.po ├── tr │ └── tr.po ├── ug │ └── ug.po ├── uk │ ├── figures │ │ ├── engrampa_home.png │ │ ├── engrampa_leftarrow.png │ │ ├── engrampa_main_window.png │ │ ├── engrampa_rightarrow.png │ │ └── engrampa_uparrow.png │ └── uk.po ├── ur │ └── ur.po ├── vi │ └── vi.po ├── wa │ └── wa.po ├── xh │ └── xh.po ├── zh_CN │ └── zh_CN.po ├── zh_HK │ └── zh_HK.po ├── zh_TW │ └── zh_TW.po └── zu │ └── zu.po ├── makepot ├── meson.build ├── meson_options.txt ├── po ├── ChangeLog ├── LINGUAS ├── Makevars ├── POTFILES.in ├── POTFILES.skip ├── af.po ├── am.po ├── ar.po ├── as.po ├── ast.po ├── az.po ├── be.po ├── bg.po ├── bn.po ├── bn_IN.po ├── br.po ├── bs.po ├── ca.po ├── ca@valencia.po ├── cmn.po ├── crh.po ├── cs.po ├── cy.po ├── da.po ├── de.po ├── dz.po ├── el.po ├── en_AU.po ├── en_CA.po ├── en_GB.po ├── eo.po ├── es.po ├── es_AR.po ├── es_CL.po ├── es_CO.po ├── es_CR.po ├── es_DO.po ├── es_EC.po ├── es_ES.po ├── es_MX.po ├── es_NI.po ├── es_PA.po ├── es_PE.po ├── es_PR.po ├── es_SV.po ├── es_UY.po ├── es_VE.po ├── et.po ├── eu.po ├── fa.po ├── fi.po ├── fr.po ├── fr_CA.po ├── frp.po ├── fur.po ├── fy.po ├── ga.po ├── gd.po ├── gl.po ├── gnome-copyrights.txt ├── gu.po ├── ha.po ├── he.po ├── hi.po ├── hr.po ├── hu.po ├── hy.po ├── ia.po ├── id.po ├── ie.po ├── ig.po ├── is.po ├── it.po ├── ja.po ├── jv.po ├── ka.po ├── kab.po ├── kk.po ├── kn.po ├── ko.po ├── ks.po ├── ku.po ├── ku_IQ.po ├── ky.po ├── li.po ├── lt.po ├── lv.po ├── mai.po ├── meson.build ├── mg.po ├── mi.po ├── mk.po ├── ml.po ├── mn.po ├── mr.po ├── ms.po ├── nan.po ├── nb.po ├── nds.po ├── ne.po ├── nl.po ├── nn.po ├── nso.po ├── oc.po ├── or.po ├── pa.po ├── pl.po ├── pms.po ├── ps.po ├── pt.po ├── pt_BR.po ├── ro.po ├── ru.po ├── rw.po ├── sc.po ├── si.po ├── sk.po ├── sl.po ├── sq.po ├── sr.po ├── sr@latin.po ├── sv.po ├── ta.po ├── te.po ├── th.po ├── tk.po ├── tr.po ├── tt.po ├── ug.po ├── uk.po ├── ur.po ├── ur_PK.po ├── uz.po ├── vi.po ├── wa.po ├── xh.po ├── yi.po ├── yo.po ├── zh_CN.po ├── zh_HK.po ├── zh_TW.po └── zu.po ├── postinstall.py ├── src ├── Makefile.am ├── actions.c ├── actions.h ├── dlg-add-files.c ├── dlg-add-files.h ├── dlg-add-folder.c ├── dlg-add-folder.h ├── dlg-ask-password.c ├── dlg-ask-password.h ├── dlg-batch-add.c ├── dlg-batch-add.h ├── dlg-delete.c ├── dlg-delete.h ├── dlg-extract.c ├── dlg-extract.h ├── dlg-new.c ├── dlg-new.h ├── dlg-open-with.c ├── dlg-open-with.h ├── dlg-package-installer.c ├── dlg-package-installer.h ├── dlg-password.c ├── dlg-password.h ├── dlg-prop.c ├── dlg-prop.h ├── dlg-update.c ├── dlg-update.h ├── egg-macros.h ├── eggfileformatchooser.c ├── eggfileformatchooser.h ├── eggtreemultidnd.c ├── eggtreemultidnd.h ├── engrampa.gresource.xml ├── file-data.c ├── file-data.h ├── file-utils.c ├── file-utils.h ├── fr-archive.c ├── fr-archive.h ├── fr-command-7z.c ├── fr-command-7z.h ├── fr-command-ace.c ├── fr-command-ace.h ├── fr-command-alz.c ├── fr-command-alz.h ├── fr-command-ar.c ├── fr-command-ar.h ├── fr-command-arj.c ├── fr-command-arj.h ├── fr-command-cfile.c ├── fr-command-cfile.h ├── fr-command-cpio.c ├── fr-command-cpio.h ├── fr-command-dpkg.c ├── fr-command-dpkg.h ├── fr-command-iso.c ├── fr-command-iso.h ├── fr-command-jar.c ├── fr-command-jar.h ├── fr-command-lha.c ├── fr-command-lha.h ├── fr-command-lrzip.c ├── fr-command-lrzip.h ├── fr-command-nomarch.c ├── fr-command-nomarch.h ├── fr-command-rar.c ├── fr-command-rar.h ├── fr-command-rpm.c ├── fr-command-rpm.h ├── fr-command-tar.c ├── fr-command-tar.h ├── fr-command-unarchiver.c ├── fr-command-unarchiver.h ├── fr-command-unstuff.c ├── fr-command-unstuff.h ├── fr-command-zip.c ├── fr-command-zip.h ├── fr-command-zoo.c ├── fr-command-zoo.h ├── fr-command.c ├── fr-command.h ├── fr-error.c ├── fr-error.h ├── fr-init.c ├── fr-init.h ├── fr-list-model.c ├── fr-list-model.h ├── fr-marshal.list ├── fr-proc-error.c ├── fr-proc-error.h ├── fr-process.c ├── fr-process.h ├── fr-window.c ├── fr-window.h ├── gio-utils.c ├── gio-utils.h ├── glib-utils.c ├── glib-utils.h ├── gtk-utils.c ├── gtk-utils.h ├── java-utils.c ├── java-utils.h ├── main.c ├── meson.build ├── open-file.c ├── open-file.h ├── preferences.c ├── preferences.h ├── rar-utils.c ├── rar-utils.h ├── server.c ├── sh │ ├── Makefile.am │ ├── isoinfo.sh │ └── meson.build ├── test-server.c ├── typedefs.h ├── ui.h └── ui │ ├── Makefile.am │ ├── add-options.ui │ ├── batch-add-files.ui │ ├── batch-password.ui │ ├── delete.ui │ ├── dlg-add-files.ui │ ├── dlg-add-folder.ui │ ├── dlg-extract.ui │ ├── engrampa.about │ ├── menus-toolbars.ui │ ├── new.ui │ ├── password.ui │ ├── properties.ui │ └── update.ui ├── subprojects └── mate-submodules.wrap └── update-authors.pl /.build.yml: -------------------------------------------------------------------------------- 1 | ########################################################## 2 | # THE FOLLOWING LINES IS USED BY docker-build 3 | ########################################################## 4 | requires: 5 | archlinux: 6 | # Useful URL: https://git.archlinux.org/svntogit/community.git/tree/engrampa 7 | - autoconf-archive 8 | - caja 9 | - clang 10 | - file 11 | - gcc 12 | - git 13 | - gtk3 14 | - json-glib 15 | - make 16 | - mate-common 17 | - which 18 | - yelp-tools 19 | 20 | debian: 21 | # Useful URL: https://github.com/mate-desktop/debian-packages 22 | # Useful URL: https://salsa.debian.org/debian-mate-team/engrampa 23 | - autoconf-archive 24 | - autopoint 25 | - clang 26 | - clang-tools 27 | - cppcheck 28 | - gettext 29 | - gcc 30 | - git 31 | - libcaja-extension-dev 32 | - libglib2.0-dev 33 | - libgtk-3-dev 34 | - libjson-glib-dev 35 | - libmagic-dev 36 | - make 37 | - mate-common 38 | - yelp-tools 39 | 40 | fedora: 41 | # Useful URL: https://src.fedoraproject.org/cgit/rpms/engrampa.git 42 | - autoconf-archive 43 | - caja-devel 44 | - clang 45 | - clang-analyzer 46 | - cppcheck-htmlreport 47 | - desktop-file-utils 48 | - file-devel 49 | - gcc 50 | - git 51 | - gtk3-devel 52 | - json-glib-devel 53 | - libSM-devel 54 | - make 55 | - mate-common 56 | - redhat-rpm-config 57 | 58 | ubuntu: 59 | - autoconf-archive 60 | - autopoint 61 | - clang 62 | - clang-tools 63 | - gcc 64 | - gettext 65 | - git 66 | - libcaja-extension-dev 67 | - libglib2.0-dev 68 | - libgtk-3-dev 69 | - libjson-glib-dev 70 | - libmagic-dev 71 | - make 72 | - mate-common 73 | - yelp-tools 74 | 75 | variables: 76 | - 'CHECKERS=" 77 | -enable-checker deadcode.DeadStores 78 | -enable-checker alpha.deadcode.UnreachableCode 79 | -enable-checker alpha.core.CastSize 80 | -enable-checker alpha.core.CastToStruct 81 | -enable-checker alpha.core.IdenticalExpr 82 | -enable-checker alpha.core.SizeofPtr 83 | -enable-checker alpha.security.ArrayBoundV2 84 | -enable-checker alpha.security.MallocOverflow 85 | -enable-checker alpha.security.ReturnPtrRange 86 | -enable-checker alpha.unix.SimpleStream 87 | -enable-checker alpha.unix.cstring.BufferOverlap 88 | -enable-checker alpha.unix.cstring.NotNullTerminated 89 | -enable-checker alpha.unix.cstring.OutOfBounds 90 | -enable-checker alpha.core.FixedAddr 91 | -enable-checker security.insecureAPI.strcpy"' 92 | 93 | before_scripts: 94 | 95 | build_scripts: 96 | - if [ ${DISTRO_NAME} == "debian" ];then 97 | - export CFLAGS+=" -Wsign-compare -Wunused-macros" 98 | - cppcheck --enable=warning,style,performance,portability,information,missingInclude . 99 | - fi 100 | 101 | - NOCONFIGURE=1 ./autogen.sh 102 | - scan-build $CHECKERS ./configure --enable-compile-warnings=maximum 103 | - if [ $CPU_COUNT -gt 1 ]; then 104 | - if [ ${DISTRO_NAME} == "debian" ];then 105 | - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make -j $(( $CPU_COUNT + 1 )) 106 | - make clean 107 | - fi 108 | - scan-build $CHECKERS --keep-cc -o html-report make -j $(( $CPU_COUNT + 1 )) 109 | - else 110 | - if [ ${DISTRO_NAME} == "debian" ];then 111 | - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make 112 | - make clean 113 | - fi 114 | - scan-build $CHECKERS --keep-cc -o html-report make 115 | - fi 116 | 117 | after_scripts: 118 | - if [ ${DISTRO_NAME} == "fedora" ];then 119 | - cppcheck --xml --output-file=cppcheck.xml --enable=warning,style,performance,portability,information,missingInclude . 120 | - cppcheck-htmlreport --title=${REPO_NAME} --file=cppcheck.xml --report-dir=cppcheck-htmlreport 121 | - ./gen-index -l 20 -i https://github.com/mate-desktop/engrampa/raw/master/data/icons/16x16/apps/engrampa.png 122 | - fi 123 | - make distcheck 124 | 125 | releases: 126 | draft: false 127 | prerelease: false 128 | checksum: true 129 | file_glob: true 130 | files: engrampa-*.tar.xz 131 | github_release: 132 | tags: true 133 | overwrite: true 134 | base_version: 1.20.0 135 | notify_servers: 136 | - https://release.mate-desktop.org/release 137 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | custom: https://mate-desktop.org/donate/ 10 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | #### Expected behaviour 2 | 3 | 4 | #### Actual behaviour 5 | 6 | 7 | #### Steps to reproduce the behaviour 8 | 9 | 10 | #### MATE general version 11 | 12 | 13 | #### Package version 14 | 15 | 16 | #### Linux Distribution 17 | 18 | 19 | #### Link to bugreport of your Distribution (requirement) 20 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "mate-submodules"] 2 | path = mate-submodules 3 | url = https://github.com/mate-desktop/mate-submodules.git 4 | ignore = untracked 5 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # vim: set ts=2 sts=2 sw=2 expandtab : 2 | dist: jammy 3 | language: shell 4 | os: linux 5 | services: 6 | - docker 7 | addons: 8 | apt: 9 | packages: 10 | - python3-pip 11 | - python3-setuptools 12 | 13 | branches: 14 | except: 15 | - gh-pages 16 | 17 | before_install: 18 | - curl -Ls -o docker-build https://github.com/mate-desktop/mate-dev-scripts/raw/master/travis/docker-build 19 | - curl -Ls -o gen-index https://github.com/mate-desktop/mate-dev-scripts/raw/master/travis/gen-index.sh 20 | - chmod +x docker-build gen-index 21 | 22 | install: 23 | - pip3 install PyGithub 24 | - ./docker-build --name ${DISTRO} --config .build.yml --install 25 | 26 | script: 27 | - ./docker-build --name ${DISTRO} --verbose --config .build.yml --build scripts 28 | 29 | notifications: 30 | irc: 31 | if: (tag OR branch = master) AND 32 | repo = mate-desktop/engrampa 33 | channels: 34 | - "irc.libera.chat#mate-dev" 35 | template: 36 | - "[%{repository_name}] %{author}: %{commit_subject}" 37 | - "[%{branch}] %{commit} %{message} %{build_url}" 38 | on_success: never 39 | on_failure: always 40 | 41 | deploy: 42 | - provider: pages 43 | edge: true 44 | token: $GITHUB_TOKEN 45 | keep_history: false 46 | committer_from_gh: true 47 | target_branch: gh-pages 48 | local_dir: html-report 49 | strategy: git 50 | on: 51 | all_branches: true 52 | condition: ${DISTRO} =~ ^fedora.*$ 53 | - provider: script 54 | edge: true 55 | script: ./docker-build --verbose --config .build.yml --release github 56 | on: 57 | tags: true 58 | condition: "${TRAVIS_TAG} =~ ^v.*$ && ${DISTRO} =~ ^fedora.*$" 59 | 60 | after_success: 61 | - 'if [[ "$TRAVIS_SECURE_ENV_VARS" == "true" && "$TRAVIS_PULL_REQUEST" != "false" && ${DISTRO} =~ ^fedora.*$ ]]; then 62 | REPO_SLUG_ARRAY=(${TRAVIS_REPO_SLUG//\// }); 63 | REPO_NAME=${REPO_SLUG_ARRAY[1]}; 64 | URL="https://${REPO_NAME}.mate-desktop.dev"; 65 | COMMENT="Code analysis completed"; 66 | curl -H "Authorization: token $GITHUB_TOKEN" -X POST 67 | -d "{\"state\": \"success\", \"description\": \"$COMMENT\", \"context\":\"scan-build\", \"target_url\": \"$URL\"}" 68 | https://api.github.com/repos/${TRAVIS_REPO_SLUG}/statuses/${TRAVIS_PULL_REQUEST_SHA}; 69 | fi' 70 | 71 | env: 72 | # - DISTRO="archlinux:latest" 73 | - DISTRO="debian:testing" 74 | - DISTRO="fedora:latest" 75 | # - DISTRO="ubuntu:rolling" 76 | -------------------------------------------------------------------------------- /.tx/config: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [o:mate:p:MATE:r:master--engrampa] 5 | file_filter = po/.po 6 | source_file = engrampa.pot 7 | source_lang = en 8 | type = PO 9 | minimum_perc = 2 10 | 11 | [o:mate:p:MATE:r:master--engrampa-user-guide] 12 | file_filter = help//.po 13 | source_file = help/engrampa.pot 14 | source_lang = en 15 | type = PO 16 | minimum_perc = 2 17 | 18 | -------------------------------------------------------------------------------- /.tx/config_20221028215415.bak: -------------------------------------------------------------------------------- 1 | [main] 2 | host = https://www.transifex.com 3 | 4 | [MATE.master--engrampa] 5 | file_filter = po/.po 6 | source_file = engrampa.pot 7 | source_lang = en 8 | type = PO 9 | minimum_perc = 2 10 | 11 | [MATE.master--engrampa-user-guide] 12 | file_filter = help//.po 13 | source_file = help/engrampa.pot 14 | source_lang = en 15 | type = PO 16 | minimum_perc = 2 17 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | MATE developers: 2 | Perberos 3 | Steve Zesch 4 | Stefano Karapetsas 5 | 6 | Main GNOME developers: 7 | Paolo Bacchilega 8 | 9 | GNOME Contributors: 10 | Claudio Bley Patch to cope with systems that 11 | do not have FNM_CASEFOLD 12 | defined. 13 | Shaun McCance Zoo archives support. 14 | Daniel Brodie ISO images support. 15 | -------------------------------------------------------------------------------- /HACKING: -------------------------------------------------------------------------------- 1 | *Translations 2 | 3 | Translations can be updated without asking, just remember to add 4 | an entry in po/ChangeLog 5 | 6 | *Patches 7 | 8 | Fork and send Pull Requests to github.com/mate-desktop/engrampa. 9 | 10 | You have to follow the style of the rest of the code even if you 11 | don't like it. The code style is K&R with 8 space tabs. 12 | 13 | *Roadmap 14 | 15 | *) src/fr-process.c : A class that lets you execute commands in 16 | sequence. You can define a command as sticky if you want that it must 17 | be executed even if a previous command has failed. 18 | 19 | *) src/fr-command.c : An abstract class used as base to define archiving 20 | utilities interfaces. For example fr-command-tar.c implements an 21 | interface for the tar command. FRCommands use a FRProcess object to 22 | execute commands. 23 | 24 | *) src/fr-archive.c : A class that implements the archive concept. An 25 | FRArchive object can load any archive type of which there is a 26 | corrisponding FRCommand interface. It adds high level operations as 27 | add_with_wildcard, add_directory, and implements options not supported 28 | by the archiving utility. For example, you can extract files from a 29 | tar archive without recreating the path even if the tar command does not 30 | support this feature. If an option is supported natively the command 31 | line option is used. 32 | 33 | *) src/window.c : Implements the window object. 34 | 35 | *) src/dlg-*.c : All files starting with dlg- implement a dialog. 36 | 37 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in. 2 | ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} 3 | 4 | if ENABLE_CAJA_ACTIONS 5 | CAJA = caja 6 | else 7 | CAJA = 8 | endif 9 | 10 | if USE_NLS 11 | PO_SUBDIR = po 12 | endif 13 | 14 | SUBDIRS = \ 15 | mate-submodules \ 16 | data \ 17 | src \ 18 | help \ 19 | $(CAJA) \ 20 | $(PO_SUBDIR) 21 | 22 | distcleancheck_listfiles = find . -type f -print | grep -v 'omf\.out' 23 | 24 | distuninstallcheck_listfiles = find . -type f -print | grep -v 'omf' | grep -v 'figures' 25 | 26 | 27 | EXTRA_DIST = \ 28 | AUTHORS \ 29 | HACKING \ 30 | NEWS \ 31 | README \ 32 | autogen.sh 33 | 34 | # Distribute the Meson build system files as well 35 | EXTRA_DIST += \ 36 | meson.build \ 37 | meson_options.txt \ 38 | postinstall.py \ 39 | caja/meson.build \ 40 | data/meson.build \ 41 | data/icons/meson.build \ 42 | help/LINGUAS \ 43 | help/meson.build \ 44 | po/meson.build \ 45 | src/meson.build \ 46 | src/sh/meson.build \ 47 | subprojects/mate-submodules.wrap 48 | 49 | DISTCLEANFILES = 50 | 51 | DISTCHECK_CONFIGURE_FLAGS = \ 52 | --with-cajadir='$${libdir}/caja/extensions-2.0-distcheck' \ 53 | --enable-compile-warnings=no \ 54 | CFLAGS='-Wno-deprecated-declarations' 55 | 56 | 57 | MAINTAINERCLEANFILES = \ 58 | $(srcdir)/INSTALL \ 59 | $(srcdir)/aclocal.m4 \ 60 | $(srcdir)/autoscan.log \ 61 | $(srcdir)/compile \ 62 | $(srcdir)/config.guess \ 63 | $(srcdir)/config.h.in \ 64 | $(srcdir)/config.sub \ 65 | $(srcdir)/configure.scan \ 66 | $(srcdir)/depcomp \ 67 | $(srcdir)/install-sh \ 68 | $(srcdir)/ltmain.sh \ 69 | $(srcdir)/m4 \ 70 | $(srcdir)/missing \ 71 | $(srcdir)/mkinstalldirs \ 72 | $(srcdir)/omf.make \ 73 | $(srcdir)/xmldocs.make \ 74 | $(srcdir)/gtk-doc.make \ 75 | $(srcdir)/ChangeLog \ 76 | `find "$(srcdir)" -type f -name Makefile.in -print` 77 | 78 | GITIGNOREFILES = build .cdt* .cproject .project .settings/ 79 | 80 | CLEANFILES = ChangeLog 81 | 82 | # Build ChangeLog from GIT history 83 | ChangeLog: 84 | @echo Creating $@ 85 | @if test -d $(top_srcdir)/.git; then \ 86 | (GIT_DIR=$(top_srcdir)/.git $(top_srcdir)/missing --run git log --stat -M -C --name-status --date=short --no-color) | fmt --split-only > $@.tmp \ 87 | && mv -f $@.tmp $@ \ 88 | || ($(RM) $@.tmp; \ 89 | echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ 90 | (test -f $@ || echo git-log is required to generate this file >> $@)); \ 91 | else \ 92 | test -f $@ || \ 93 | (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ 94 | echo A git checkout and git-log is required to generate this file >> $@); \ 95 | fi 96 | 97 | dist: ChangeLog 98 | 99 | .PHONY: ChangeLog 100 | 101 | -include $(top_srcdir)/git.mk 102 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 2 | * Engrampa * 3 | 4 | an archive manager utility for the 5 | MATE Environment. 6 | 7 | * What is it ? 8 | 9 | Engrampa is a fork of File-Roller. 10 | 11 | Engrampa is an archive manager for the MATE environment. This means 12 | that you can create and modify archives; view the content of an archive; 13 | view and modify a file contained in the archive; extract files from the 14 | archive. 15 | 16 | Engrampa is only a front-end (a graphical interface) to archiving programs 17 | like tar and zip. The supported file types are : 18 | * 7-Zip Compressed File (.7z) 19 | * WinAce Compressed File (.ace) 20 | * ALZip Compressed File (.alz) 21 | * AIX Small Indexed Archive (.ar) 22 | * ARC Archive (.arc) 23 | * ARJ Compressed Archive (.arj) 24 | * Cabinet File (.cab) 25 | * UNIX CPIO Archive (.cpio) 26 | * Debian Linux Package (.deb) [Read-only mode] 27 | * EPUB (.epub) 28 | * ISO-9660 CD Disc Image (.iso) [Read-only mode] 29 | * Java Archive (.jar) 30 | * Java Enterprise archive (.ear) 31 | * Java Web Archive (.war) 32 | * LHA Archive (.lzh, .lha) 33 | * WinRAR Compressed Archive (.rar) 34 | * RAR Archived Comic Book (.cbr) 35 | * RPM Linux Package (.rpm) [Read-only mode] 36 | * Tape Archive File: 37 | * uncompressed (.tar) 38 | or compressed with: 39 | * gzip (.tar.gz , .tgz) 40 | * brotli (.tar.br) 41 | * bzip (.tar.bz , .tbz) 42 | * bzip2 (.tar.bz2 , .tbz2) 43 | * compress (.tar.Z , .taz) 44 | * lrzip (.tar.lrz , .tlrz) 45 | * lzip (.tar.lz , .tlz) 46 | * lzop (.tar.lzo , .tzo) 47 | * 7zip (.tar.7z) 48 | * xz (.tar.xz) 49 | * Stuffit Archives (.bin, .sit) 50 | * ZIP Archive (.zip) 51 | * ZIP Archived Comic Book (.cbz) 52 | * ZOO Compressed Archive File (.zoo) 53 | * Single files compressed with gzip (.gz), brotli (.br), bzip (.bz), bzip2 (.bz2), compress (.Z), 54 | lrzip (.lrz), lzip (.lz), lzop (.lzo), rzip(.rz), xz (.xz), Zstandard (.zst). 55 | 56 | * Home Page 57 | 58 | https://mate-desktop.org/ 59 | 60 | * Licensing 61 | 62 | This program is released under the terms of the GNU General Public 63 | License (GNU GPL) version 2 or greater. 64 | You can find a copy of the license in the file COPYING. 65 | 66 | * Dependencies 67 | 68 | In order to build this program from the source code you need git installed and 69 | a working MATE environment, with the development tools installed properly. 70 | 71 | Also you need the following libraries: 72 | * glib >= 2.32.0 73 | * gtk+ >= 3.14.0 74 | * libcaja-extension >= 1.1.0 (optional) 75 | 76 | * Install 77 | 78 | git submodule init 79 | git submodule update --remote --recursive 80 | ./autogen.sh 81 | make 82 | make install 83 | 84 | * Notes 85 | 86 | [Read-only mode] means that Engrampa may read the file type, but it cannot 87 | write to that file type. 88 | An example is ISO-9660 CD Disc Image (.iso) [Read-only mode]. Iso images 89 | may be read, but file(s) cannot be written to an (.iso). 90 | -------------------------------------------------------------------------------- /README-DISTRIBUTIONS: -------------------------------------------------------------------------------- 1 | In order to make the missing utility auto-installation feature work properly you 2 | have to change the file data/packages.match specifying for each package name the 3 | corresponding name used in your distribution. The original package names are 4 | taken from the Debian distribution. 5 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Run this to generate all the initial makefiles, etc. 3 | 4 | srcdir=`dirname $0` 5 | test -z "$srcdir" && srcdir=. 6 | 7 | PKG_NAME="engrampa" 8 | 9 | (test -f $srcdir/configure.ac) || { 10 | echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" 11 | echo " top-level $PKG_NAME directory" 12 | exit 1 13 | } 14 | 15 | which mate-autogen || { 16 | echo "You need to install mate-common" 17 | exit 1 18 | } 19 | 20 | which yelp-build || { 21 | echo "You need to install yelp-tools" 22 | exit 1 23 | } 24 | 25 | REQUIRED_AUTOMAKE_VERSION=1.10 26 | REQUIRED_GTK_DOC_VERSION=1.13 27 | 28 | . mate-autogen 29 | -------------------------------------------------------------------------------- /caja/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | $(WARN_CFLAGS) \ 3 | -DFR_DATADIR=\"$(datadir)\" \ 4 | -DMATELOCALEDIR=\""$(datadir)/locale"\" \ 5 | -I$(top_srcdir) \ 6 | -I$(top_builddir) \ 7 | $(CAJA_CFLAGS) 8 | 9 | caja_extensiondir=$(CAJA_EXTENSION_DIR) 10 | 11 | caja_extension_LTLIBRARIES=libcaja-engrampa.la 12 | 13 | libcaja_engrampa_la_SOURCES = \ 14 | caja-engrampa.c \ 15 | caja-engrampa.h \ 16 | engrampa-module.c 17 | 18 | libcaja_engrampa_la_LDFLAGS = -module -avoid-version -no-undefined 19 | libcaja_engrampa_la_LIBADD = $(CAJA_LIBS) 20 | 21 | extensiondir = $(datadir)/caja/extensions 22 | extension_in_in_files = libcaja-engrampa.caja-extension.desktop.in.in 23 | extension_in_files = $(extension_in_in_files:.caja-extension.desktop.in.in=.caja-extension.desktop.in) 24 | extension_DATA = $(extension_in_files:.caja-extension.desktop.in=.caja-extension) 25 | $(extension_DATA): $(extension_in_files) 26 | if USE_NLS 27 | $(AM_V_GEN) $(MSGFMT) --desktop --keyword= --keyword=Copyright --keyword=Name --keyword=Description --template $< -d $(top_srcdir)/po -o $@ 28 | else 29 | $(AM_V_GEN) cp -f $< $@ 30 | endif 31 | 32 | DISTCLEANFILES = $(extension_in_files) 33 | CLEANFILES = $(extension_DATA) 34 | 35 | EXTRA_DIST = $(extension_in_in_files) 36 | 37 | -include $(top_srcdir)/git.mk 38 | -------------------------------------------------------------------------------- /caja/caja-engrampa.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Engrampa 3 | * 4 | * Copyright (C) 2004 Free Software Foundation, Inc. 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 19 | * 20 | * Author: Paolo Bacchilega 21 | * 22 | */ 23 | 24 | #ifndef CAJA_RNGRAMPA_H 25 | #define CAJA_RNGRAMPA_H 26 | 27 | #include 28 | 29 | G_BEGIN_DECLS 30 | 31 | #define CAJA_TYPE_FR (caja_fr_get_type ()) 32 | #define CAJA_FR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CAJA_TYPE_FR, CajaFr)) 33 | #define CAJA_IS_FR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CAJA_TYPE_FR)) 34 | 35 | typedef struct _CajaFr CajaFr; 36 | typedef struct _CajaFrClass CajaFrClass; 37 | 38 | struct _CajaFr { 39 | GObject __parent; 40 | }; 41 | 42 | struct _CajaFrClass { 43 | GObjectClass __parent; 44 | }; 45 | 46 | GType caja_fr_get_type (void); 47 | void caja_fr_register_type (GTypeModule *module); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* CAJA_RNGRAMPA_H */ 52 | -------------------------------------------------------------------------------- /caja/engrampa-module.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Engrampa 3 | * 4 | * Copyright (C) 2004 Free Software Foundation, Inc. 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 19 | * 20 | * Author: Paolo Bacchilega 21 | * 22 | */ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include "caja-engrampa.h" 29 | 30 | void 31 | caja_module_initialize (GTypeModule*module) 32 | { 33 | caja_fr_register_type (module); 34 | 35 | bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); 36 | bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); 37 | } 38 | 39 | void 40 | caja_module_shutdown (void) 41 | { 42 | } 43 | 44 | void 45 | caja_module_list_types (const GType **types, 46 | int *num_types) 47 | { 48 | static GType type_list[1]; 49 | 50 | type_list[0] = CAJA_TYPE_FR; 51 | *types = type_list; 52 | *num_types = 1; 53 | } 54 | -------------------------------------------------------------------------------- /caja/libcaja-engrampa.caja-extension.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Caja Extension] 2 | # Translators: Do NOT translate or transliterate this text (this is an icon file name)! 3 | Icon=engrampa 4 | Name=Engrampa 5 | Description=Allows to create and extract archives 6 | Author=Paolo Bacchilega ;Perberos 7 | Copyright=Copyright (C) 2001–2010 Free Software Foundation, Inc.\nCopyright (C) 2012–2021 The MATE developers 8 | Version=@VERSION@ 9 | Website=@PACKAGE_URL@ 10 | -------------------------------------------------------------------------------- /caja/meson.build: -------------------------------------------------------------------------------- 1 | shared_module('caja-engrampa', 2 | sources : [ 3 | 'caja-engrampa.c', 4 | 'engrampa-module.c' 5 | ], 6 | dependencies : [ 7 | libm_dep, 8 | thread_dep, 9 | glib_dep, 10 | gthread_dep, 11 | gtk_dep, 12 | libcaja_extension_dep, 13 | use_json_glib ? libjson_glib_dep : [], 14 | ], 15 | include_directories : config_inc, 16 | c_args : c_args, 17 | install : true, 18 | install_dir : libcaja_extension_dep.get_pkgconfig_variable('extensiondir') 19 | ) 20 | 21 | desktop_data = configuration_data() 22 | desktop_data.set('VERSION', meson.project_version()) 23 | desktop_data.set('PACKAGE_URL', 'https://mate-desktop.org') 24 | desktop_in_file = configure_file( 25 | input : 'libcaja-engrampa.caja-extension.desktop.in.in', 26 | output : 'libcaja-engrampa.caja-extension.desktop.in', 27 | configuration : desktop_data 28 | ) 29 | 30 | i18n.merge_file( 31 | input : desktop_in_file, 32 | output : 'libcaja-engrampa.caja-extension', 33 | type : 'desktop', 34 | po_dir : po_dir, 35 | install : true, 36 | install_dir : join_paths(datadir, 'caja', 'extensions') 37 | ) 38 | -------------------------------------------------------------------------------- /data/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = icons 2 | 3 | desktopdir = $(datadir)/applications 4 | desktop_in_in_files = engrampa.desktop.in.in 5 | desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in) 6 | desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) 7 | $(desktop_DATA): $(desktop_in_files) 8 | if USE_NLS 9 | $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ 10 | else 11 | $(AM_V_GEN) sed '/^# Translators/d' < $< > $@ 12 | endif 13 | 14 | if ENABLE_PACKAGEKIT 15 | matchdir = $(datadir)/engrampa 16 | match_DATA = packages.match 17 | endif 18 | 19 | servicedir = $(datadir)/dbus-1/services 20 | service_in_files = org.mate.Engrampa.service.in 21 | service_DATA = $(service_in_files:.service.in=.service) 22 | $(service_DATA): $(service_in_files) Makefile 23 | $(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ 24 | 25 | appdatadir = $(datadir)/metainfo 26 | appdata_in_in_files = engrampa.appdata.xml.in.in 27 | appdata_in_files = $(appdata_in_in_files:.xml.in.in=.xml.in) 28 | appdata_DATA = $(appdata_in_files:.xml.in=.xml) 29 | $(appdata_DATA): $(appdata_in_files) 30 | if USE_NLS 31 | $(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@ 32 | else 33 | $(AM_V_GEN) cp -f $< $@ 34 | endif 35 | 36 | gsettingsschema_in_files = org.mate.engrampa.gschema.xml.in 37 | gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml) 38 | .PRECIOUS: $(gsettings_SCHEMAS) 39 | 40 | @GSETTINGS_RULES@ 41 | 42 | man_MANS = engrampa.1 43 | 44 | gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor 45 | 46 | install-data-hook: update-cache 47 | uninstall-hook: update-cache 48 | update-cache: 49 | if test -z "$(DESTDIR)"; then \ 50 | echo "Updating Gtk icon cache."; \ 51 | $(gtk_update_icon_cache); \ 52 | else \ 53 | echo "*** Icon cache not updated. After (un)install, run this:"; \ 54 | echo "*** $(gtk_update_icon_cache)"; \ 55 | fi 56 | 57 | EXTRA_DIST = \ 58 | packages.match.in \ 59 | packages.match \ 60 | $(appdata_in_in_files) \ 61 | $(desktop_in_in_files) \ 62 | $(gsettingsschema_in_files) \ 63 | $(man_MANS) \ 64 | $(service_in_files) \ 65 | $(NULL) 66 | 67 | DISTCLEANFILES = \ 68 | $(appdata_in_files) \ 69 | $(desktop_in_files) \ 70 | $(service_DATA) \ 71 | $(NULL) 72 | 73 | CLEANFILES = \ 74 | $(appdata_DATA) \ 75 | $(desktop_DATA) \ 76 | $(gsettings_SCHEMAS) \ 77 | $(NULL) 78 | 79 | dist-hook: 80 | cd $(distdir); rm -f $(CLEANFILES) 81 | 82 | -include $(top_srcdir)/git.mk 83 | -------------------------------------------------------------------------------- /data/engrampa.1: -------------------------------------------------------------------------------- 1 | .\" Copyright (C) 2007 Sven Arvidsson 2 | .\" 3 | .\" This is free software; you may redistribute it and/or modify 4 | .\" it under the terms of the GNU General Public License as 5 | .\" published by the Free Software Foundation; either version 2, 6 | .\" or (at your option) any later version. 7 | .\" 8 | .\" This is distributed in the hope that it will be useful, but 9 | .\" WITHOUT ANY WARRANTY; without even the implied warranty of 10 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | .\" GNU General Public License for more details. 12 | .\" 13 | .\"You should have received a copy of the GNU General Public License along 14 | .\"with this program; if not, write to the Free Software Foundation, Inc., 15 | .\"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 16 | .\" 17 | .\" Man page for Engrampa 18 | .TH ENGRAMPA 1 "1 February 2014" "MATE Desktop Environment" 19 | .\" Please adjust this date when revising the manpage. 20 | .\" 21 | .SH "NAME" 22 | Engrampa \- Archive Manager for MATE 23 | .SH "SYNOPSIS" 24 | .B engrampa [OPTIONS...] [FILES...] 25 | .SH "DESCRIPTION" 26 | Engrampa is the official archive manager for the MATE Desktop Environment, it is a graphical front-end to archiving utilities such as tar and zip. It is a fork of File Roller. 27 | .TP 28 | Engrampa supports most common operations such as creating, modifying and extracting files from an archive. You can also view the contents of an archive and open files contained within the archive. 29 | .TP 30 | This manual page briefly documents the \fBengrampa\fR command. 31 | 32 | .SH "OPTIONS" 33 | .TP 34 | \fBfilename(s)...\fR 35 | Specifies the archive file to open when \fBengrampa\fR starts. If this is not specified, \fBengrampa\fR will start with a blank window and you may open an archive from the menu or by using the shortcut CTRL+O. 36 | .TP 37 | \fB\-a, \-\-add\-to=ARCHIVE\fR 38 | Add files to the specified archive and quit the program 39 | .TP 40 | \fB\-d, \-\-add FILE\fR 41 | Add files asking the name of the archive and quit the program 42 | .TP 43 | \fB\-e, \-\-extract\-to=FOLDER\fR 44 | Extract archives to the specified folder and quit the program 45 | .TP 46 | \fB\-f, \-\-extract\fR 47 | Extract archives asking the destination folder and quit the program 48 | .TP 49 | \fB\-h, \-\-extract\-here\fR 50 | Extract archives using the archive name as destination folder and quit the program 51 | .TP 52 | \fB\-\-default\-dir=FOLDER\fR 53 | Default folder to use for the '\-\-add' and '\-\-extract' commands 54 | .TP 55 | \fB\-\-force\fR 56 | Create destination folder without asking confirmation 57 | .TP 58 | \fB\-\-display=DISPLAY\fR 59 | X display to use. 60 | .TP 61 | \fB\-?, \-\-help\fR 62 | Print standard command line options. 63 | .TP 64 | \fB\-\-help\-all\fR 65 | Print all command line options. 66 | .TP 67 | \fB\-\-version\fR 68 | Show the application's version. 69 | .P 70 | This program also accepts the standard GTK options. 71 | 72 | .SH "EXAMPLES" 73 | \fBengrampa \-h matelivecd.iso\fR 74 | .RS 4 75 | Extract matelivecd.iso to ./matelivecd in the current working directory. 76 | .RE 77 | .PP 78 | \fBengrampa ./matelivecd/* \-a matelivecd.tar.gz\fR 79 | .RS 4 80 | Create a new gzip compressed tarball archive named matelivecd.tar.gz, containing all the files located in the ./matelivecd directory. 81 | .RE 82 | .PP 83 | \fBengrampa matelivecd.tar.gz\fR 84 | .RS 4 85 | Open matelivecd.tar.gz to view and manipulate its contents. 86 | 87 | .SH "BUGS" 88 | .SS Should you encounter any bugs, they may be reported at: 89 | http://github.com/mate-desktop/engrampa/issues 90 | .SH "AUTHORS" 91 | .SS \fBEngrampa\fR is written by Paolo Bacchilega and Perberos . 92 | .SS This Man Page has been updated/re-written for the MATE Desktop Environment by: 93 | .nf 94 | Stefano Karapetsas (2014) 95 | Adam Erdman (2014) 96 | .fi 97 | .SH "HISTORY" 98 | This manual page was originally written for the Debian Project by Sven Arvidsson , for File Roller. (2007) 99 | .SH "SEE ALSO" 100 | .SS 101 | Engrampa documentation can be found from the "Help" menu, or by pressing the F1 key. 102 | Further information may also be available at: http://wiki.mate-desktop.org/docs 103 | -------------------------------------------------------------------------------- /data/engrampa.appdata.xml.in.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | engrampa.desktop 5 | CC0-1.0 6 | GPL-2.0+ 7 | Engrampa Archive Manager 8 | An Archive Manager for the MATE desktop environment 9 | 10 |

11 | Engrampa is an archive manager for the MATE environment. It allows you 12 | to create and modify archives, view the contents of an archive, view a 13 | file contained in an archive, and extract files from archive. 14 |

15 |

16 | Engrampa is only a front-end (a graphical interface) to archiving programs 17 | like tar and zip. The supported file types are: 18 |

19 |
    20 |
  • 7-Zip Compressed File (.7z)
  • 21 |
  • WinAce Compressed File (.ace)
  • 22 |
  • ALZip Compressed File (.alz)
  • 23 |
  • AIX Small Indexed Archive (.ar)
  • 24 |
  • ARJ Compressed Archive (.arj)
  • 25 |
  • Cabinet File (.cab)
  • 26 |
  • UNIX CPIO Archive (.cpio)
  • 27 |
  • Debian Package (.deb, .udeb) [Read-only mode]
  • 28 |
  • ISO-9660 Disk Image (.iso) [Read-only mode]
  • 29 |
  • Java Archive (.jar)
  • 30 |
  • Java Enterprise archive (.ear)
  • 31 |
  • Java Web Archive (.war)
  • 32 |
  • LHA Archive (.lzh, .lha)
  • 33 |
  • WinRAR Compressed Archive (.rar)
  • 34 |
  • RAR Archived Comic Book (.cbr)
  • 35 |
  • RPM Package Manager (.rpm) [Read-only mode]
  • 36 |
  • Tape Archive File uncompressed (.tar) or compressed with: gzip (.tar.gz, .tgz), brotli (.tar.br), bzip (.tar.bz, .tbz), bzip2 (.tar.bz2, .tbz2), 37 | compress (.tar.Z, .taz), lrzip (.tar.lrz, .tlrz), lzip (.tar.lz, .tlz), lzop (.tar.lzo, .tzo), 7zip (.tar.7z), xz (.tar.xz), Zstandard (.zst) 38 |
  • 39 |
  • Stuffit Archives (.bin, .sit)
  • 40 |
  • ZIP Archive (.zip)
  • 41 |
  • ZIP Archived Comic Book (.cbz)
  • 42 |
  • ZOO Compressed Archive File (.zoo)
  • 43 |
  • Single files compressed with gzip (.gz), brotli (.br), bzip (.bz), bzip2 (.bz2), compress (.Z), 44 | lrzip (.lrz), lzip (.lz), lzop (.lzo), rzip(.rz), xz (.xz).
  • 45 |
46 |

47 | Engrampa is a fork of File Roller and part of the MATE Desktop Environment. 48 | If you would like to know more about MATE and Engrampa, please visit the 49 | project's home page. 50 |

51 |
52 | 53 | 54 | 55 | https://alexpl.fedorapeople.org/AppData/engrampa/screens/engrampa_01.png 56 | 57 | 58 | 59 | 60 | https://alexpl.fedorapeople.org/AppData/engrampa/screens/engrampa_02.png 61 | 62 | 63 | 64 | 65 | https://alexpl.fedorapeople.org/AppData/engrampa/screens/engrampa_03.png 66 | 67 | 68 | 69 | @PACKAGE_URL@ 70 | mate-dev@ml.mate-desktop.org 71 | MATE 72 |
73 | -------------------------------------------------------------------------------- /data/engrampa.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Engrampa Archive Manager 3 | GenericName=Archive Manager 4 | Comment=Create and modify an archive 5 | TryExec=engrampa 6 | Exec=engrampa %U 7 | StartupNotify=true 8 | Terminal=false 9 | Type=Application 10 | # Translators: Do NOT translate or transliterate this text (this is an icon file name)! 11 | Icon=engrampa 12 | # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! 13 | Categories=GTK;Utility;Archiving;Compression; 14 | MimeType=application/epub+zip;application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-arc;application/x-arj;application/x-brotli;application/x-brotli-compressed-tar;application/x-bzip;application/x-bzip2;application/bzip2;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/vnd.debian.binary-package;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/gzip;application/x-gzpostscript;application/x-java-archive;application/java-archive;application/jar;application/jar-archive;application/x-lha;application/x-lzh-compressed;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-source-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zstd;application/x-zstd;application/x-zstd-compressed-tar;application/zip;application/x-archive;application/vnd.ms-cab-compressed; 15 | # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! 16 | Keywords=MATE;archive;manager;compression; 17 | X-MATE-DocPath=engrampa/engrampa.xml 18 | X-MATE-Bugzilla-Bugzilla=MATE 19 | X-MATE-Bugzilla-Product=engrampa 20 | X-MATE-Bugzilla-Component=general 21 | X-MATE-Bugzilla-Version=@VERSION@ 22 | -------------------------------------------------------------------------------- /data/icons/16x16/actions/add-files-to-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/16x16/actions/add-files-to-archive.png -------------------------------------------------------------------------------- /data/icons/16x16/actions/add-folder-to-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/16x16/actions/add-folder-to-archive.png -------------------------------------------------------------------------------- /data/icons/16x16/actions/extract-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/16x16/actions/extract-archive.png -------------------------------------------------------------------------------- /data/icons/16x16/apps/engrampa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/16x16/apps/engrampa.png -------------------------------------------------------------------------------- /data/icons/22x22/apps/engrampa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/22x22/apps/engrampa.png -------------------------------------------------------------------------------- /data/icons/24x24/actions/add-files-to-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/24x24/actions/add-files-to-archive.png -------------------------------------------------------------------------------- /data/icons/24x24/actions/add-folder-to-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/24x24/actions/add-folder-to-archive.png -------------------------------------------------------------------------------- /data/icons/24x24/actions/extract-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/24x24/actions/extract-archive.png -------------------------------------------------------------------------------- /data/icons/24x24/apps/engrampa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/24x24/apps/engrampa.png -------------------------------------------------------------------------------- /data/icons/32x32/apps/engrampa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/data/icons/32x32/apps/engrampa.png -------------------------------------------------------------------------------- /data/icons/Makefile.am: -------------------------------------------------------------------------------- 1 | iconsdir = $(datadir)/icons/hicolor 2 | 3 | nobase_dist_icons_DATA = \ 4 | 16x16/actions/add-files-to-archive.png \ 5 | 16x16/actions/add-folder-to-archive.png \ 6 | 16x16/actions/extract-archive.png \ 7 | 16x16/apps/engrampa.png \ 8 | 22x22/apps/engrampa.png \ 9 | 24x24/actions/add-files-to-archive.png \ 10 | 24x24/actions/add-folder-to-archive.png \ 11 | 24x24/actions/extract-archive.png \ 12 | 24x24/apps/engrampa.png \ 13 | 32x32/apps/engrampa.png \ 14 | scalable/apps/engrampa.svg 15 | 16 | gtk_update_icon_cache = gtk-update-icon-cache -f -t $(iconsdir) 17 | 18 | install-data-hook: update-icon-cache 19 | uninstall-hook: update-icon-cache 20 | update-icon-cache: 21 | @-if test -z "$(DESTDIR)"; then \ 22 | echo "Updating Gtk icon cache."; \ 23 | $(gtk_update_icon_cache); \ 24 | else \ 25 | echo "*** Icon cache not updated. After install, run this:"; \ 26 | echo "*** $(gtk_update_icon_cache)"; \ 27 | fi 28 | 29 | -include $(top_srcdir)/git.mk 30 | -------------------------------------------------------------------------------- /data/icons/meson.build: -------------------------------------------------------------------------------- 1 | apps_icons = [ 2 | ['16x16', 'engrampa.png'], 3 | ['22x22', 'engrampa.png'], 4 | ['24x24', 'engrampa.png'], 5 | ['32x32', 'engrampa.png'], 6 | ] 7 | 8 | actions_icons = [ 9 | ['16x16', 'add-folder-to-archive.png', 'extract-archive.png', 'add-files-to-archive.png'], 10 | ['24x24', 'add-folder-to-archive.png', 'extract-archive.png', 'add-files-to-archive.png'], 11 | ] 12 | 13 | foreach icon: actions_icons 14 | install_data( 15 | join_paths(icon[0], 'actions', icon[1]), 16 | install_dir: join_paths(get_option('prefix'), 'share/icons', 'hicolor', icon[0], 'actions') 17 | ) 18 | install_data( 19 | join_paths(icon[0], 'actions', icon[2]), 20 | install_dir: join_paths(get_option('prefix'), 'share/icons', 'hicolor', icon[0], 'actions') 21 | ) 22 | install_data( 23 | join_paths(icon[0], 'actions', icon[3]), 24 | install_dir: join_paths(get_option('prefix'), 'share/icons', 'hicolor', icon[0], 'actions') 25 | ) 26 | endforeach 27 | 28 | foreach icon: apps_icons 29 | install_data( 30 | join_paths(icon[0], 'apps', icon[1]), 31 | install_dir: join_paths(get_option('prefix'), 'share/icons', 'hicolor', icon[0], 'apps') 32 | ) 33 | endforeach 34 | 35 | install_subdir('scalable', install_dir : join_paths(datadir, 'icons', 'hicolor')) 36 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | po_dir = join_paths(meson.source_root(), 'po') 2 | man1_dir = join_paths(engrampa_mandir, 'man1') 3 | 4 | schema_data = configuration_data() 5 | schema_data.set('GETTEXT_PACKAGE', meson.project_name()) 6 | configure_file( 7 | input : 'org.mate.engrampa.gschema.xml.in', 8 | output : 'org.mate.engrampa.gschema.xml', 9 | configuration : schema_data, 10 | install : true, 11 | install_dir : join_paths(datadir, 'glib-2.0', 'schemas') 12 | ) 13 | 14 | install_data('packages.match', 15 | install_dir : join_paths(datadir, meson.project_name()) 16 | ) 17 | 18 | install_data('engrampa.1', 19 | install_dir : man1_dir 20 | ) 21 | 22 | # .desktop file 23 | 24 | desktop_data = configuration_data() 25 | desktop_data.set('VERSION', meson.project_version()) 26 | desktop_in_file = configure_file( 27 | input : 'engrampa.desktop.in.in', 28 | output : 'engrampa.desktop.in', 29 | configuration : desktop_data 30 | ) 31 | 32 | i18n.merge_file( 33 | input : desktop_in_file, 34 | output : 'engrampa.desktop', 35 | type : 'desktop', 36 | po_dir : po_dir, 37 | install : true, 38 | install_dir : join_paths(datadir, 'applications') 39 | ) 40 | 41 | # .service files 42 | 43 | service_data = configuration_data() 44 | service_data.set('libexecdir', join_paths(prefix, get_option('libexecdir'))) 45 | 46 | configure_file( 47 | input : 'org.mate.Engrampa.service.in', 48 | output : 'org.mate.Engrampa.service', 49 | configuration : service_data, 50 | install : true, 51 | install_dir : join_paths(datadir, 'dbus-1/services') 52 | ) 53 | 54 | # .appdata file 55 | 56 | appdata_data = configuration_data() 57 | appdata_data.set('PACKAGE_URL', 'https://mate-desktop.org') 58 | appdata_in_file = configure_file( 59 | input : 'engrampa.appdata.xml.in.in', 60 | output : 'engrampa.appdata.xml.in', 61 | configuration : appdata_data 62 | ) 63 | i18n.merge_file( 64 | input : appdata_in_file, 65 | output : 'engrampa.appdata.xml', 66 | type : 'xml', 67 | po_dir : po_dir, 68 | install : true, 69 | install_dir : join_paths(datadir, 'metainfo') 70 | ) 71 | 72 | # Subdirectories 73 | 74 | subdir('icons') 75 | -------------------------------------------------------------------------------- /data/org.mate.Engrampa.service.in: -------------------------------------------------------------------------------- 1 | [D-BUS Service] 2 | Name=org.mate.Engrampa 3 | Exec=@libexecdir@/engrampa-server 4 | -------------------------------------------------------------------------------- /data/packages.match: -------------------------------------------------------------------------------- 1 | [Package Matches] 2 | arc= 3 | arj= 4 | binutils= 5 | brotli= 6 | bzip2= 7 | cpio= 8 | dpkg= 9 | genisoimage= 10 | gzip= 11 | lha= 12 | lrzip= 13 | lzip= 14 | lzma= 15 | lzop= 16 | ncompress= 17 | nomarch= 18 | 7zip= 19 | 7zip-full= 20 | 7zip-rar= 21 | rar= 22 | rpm= 23 | rzip= 24 | tar= 25 | unace= 26 | unalz= 27 | unarchiver= 28 | unrar= 29 | unstaff= 30 | unzip= 31 | xz= 32 | zip= 33 | zoo= 34 | zstd= 35 | 36 | -------------------------------------------------------------------------------- /data/packages.match.in: -------------------------------------------------------------------------------- 1 | [Package Matches] 2 | @NAMES@ 3 | -------------------------------------------------------------------------------- /data/update-packages-match: -------------------------------------------------------------------------------- 1 | list=`find .. -iname "*.c" | xargs grep PACKAGES | sed -e 's/.*PACKAGES[ ]*[(]"\([^"]*\)"[)];/\1/g' -e 's/,/\n/g' | sort -u | sed -e 's/\(.*\)/\1=/g' | tr '\n' '|'` 2 | sed -e 's/@NAMES@/'"$list"'/g' < packages.match.in | tr '|' '\n' > packages.match 3 | -------------------------------------------------------------------------------- /help/C/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/C/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/C/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/C/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/C/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/C/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/C/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/C/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/C/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/C/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/C/legal.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | Permission is granted to copy, distribute and/or modify this 6 | document under the terms of the GNU Free Documentation 7 | License (GFDL), Version 1.1 or any later version published 8 | by the Free Software Foundation with no Invariant Sections, 9 | no Front-Cover Texts, and no Back-Cover Texts. You can find 10 | a copy of the GFDL at this link or in the file COPYING-DOCS 11 | distributed with this manual. 12 | 13 | This manual is part of a collection of MATE manuals 14 | distributed under the GFDL. If you want to distribute this 15 | manual separately from the collection, you can do so by 16 | adding a copy of the license to the manual, as described in 17 | section 6 of the license. 18 | 19 | 20 | 21 | Many of the names used by companies to distinguish their 22 | products and services are claimed as trademarks. Where those 23 | names appear in any MATE documentation, and the members of 24 | the MATE Documentation Project are made aware of those 25 | trademarks, then the names are in capital letters or initial 26 | capital letters. 27 | 28 | 29 | 30 | DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED 31 | UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE 32 | WITH THE FURTHER UNDERSTANDING THAT: 33 | 34 | 35 | 36 | DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, 37 | WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR 38 | IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES 39 | THAT THE DOCUMENT OR MODIFIED VERSION OF THE 40 | DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR 41 | A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE 42 | RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE 43 | OF THE DOCUMENT OR MODIFIED VERSION OF THE 44 | DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR 45 | MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, 46 | YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY 47 | CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY 48 | SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER 49 | OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS 50 | LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED 51 | VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER 52 | EXCEPT UNDER THIS DISCLAIMER; AND 53 | 54 | 55 | 56 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL 57 | THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), 58 | CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, 59 | INITIAL WRITER, ANY CONTRIBUTOR, OR ANY 60 | DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION 61 | OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH 62 | PARTIES, BE LIABLE TO ANY PERSON FOR ANY 63 | DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR 64 | CONSEQUENTIAL DAMAGES OF ANY CHARACTER 65 | INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS 66 | OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR 67 | MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR 68 | LOSSES ARISING OUT OF OR RELATING TO USE OF THE 69 | DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, 70 | EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF 71 | THE POSSIBILITY OF SUCH DAMAGES. 72 | 73 | 74 | 75 | 76 | 77 | Feedback 78 | To report a bug or make a suggestion regarding the Archive Manager application or this manual, follow the directions in the MATE Feedback Page. 79 | 80 | -------------------------------------------------------------------------------- /help/LINGUAS: -------------------------------------------------------------------------------- 1 | af 2 | am 3 | ar 4 | as 5 | ast 6 | az 7 | be 8 | bg 9 | bn 10 | bn_IN 11 | br 12 | bs 13 | ca 14 | ca@valencia 15 | cmn 16 | crh 17 | cs 18 | cy 19 | da 20 | de 21 | dz 22 | el 23 | en_AU 24 | en_CA 25 | en_GB 26 | eo 27 | es 28 | et 29 | eu 30 | fa 31 | fi 32 | fr 33 | ga 34 | gl 35 | gu 36 | he 37 | hi 38 | hr 39 | hu 40 | hy 41 | id 42 | is 43 | it 44 | ja 45 | ka 46 | kk 47 | kn 48 | ko 49 | ku 50 | ky 51 | li 52 | lt 53 | lv 54 | mai 55 | mg 56 | mk 57 | ml 58 | mn 59 | mr 60 | ms 61 | nb 62 | ne 63 | nl 64 | nn 65 | nso 66 | oc 67 | or 68 | pa 69 | pl 70 | pt 71 | pt_BR 72 | ro 73 | ru 74 | si 75 | sk 76 | sl 77 | sq 78 | sr 79 | sr@latin 80 | sv 81 | ta 82 | te 83 | th 84 | tk 85 | tr 86 | ug 87 | uk 88 | ur 89 | vi 90 | wa 91 | xh 92 | zh_CN 93 | zh_HK 94 | zh_TW 95 | zu 96 | -------------------------------------------------------------------------------- /help/Makefile.am: -------------------------------------------------------------------------------- 1 | @YELP_HELP_RULES@ 2 | 3 | HELP_ID = engrampa 4 | HELP_FILES = index.docbook legal.xml 5 | HELP_MEDIA = \ 6 | figures/engrampa_home.png \ 7 | figures/engrampa_leftarrow.png \ 8 | figures/engrampa_main_window.png \ 9 | figures/engrampa_rightarrow.png \ 10 | figures/engrampa_uparrow.png 11 | 12 | # Add linguas to be ignored, e.g. IGNORE_HELP_LINGUAS = ca de es fr 13 | if USE_NLS 14 | IGNORE_HELP_LINGUAS = 15 | HELP_LINGUAS = $(if $(IGNORE_HELP_LINGUAS), \ 16 | $(filter-out $(IGNORE_HELP_LINGUAS),$(subst /,,$(dir $(wildcard */*.po)))), \ 17 | $(subst /,,$(dir $(wildcard */*.po))) ) 18 | else 19 | HELP_LINGUAS = 20 | endif 21 | 22 | -include $(top_srcdir)/git.mk 23 | -------------------------------------------------------------------------------- /help/bg/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/bg/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/bg/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/bg/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/ca/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ca/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/ca/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ca/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/ca/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ca/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/ca/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ca/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/ca/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ca/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/cs/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/cs/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/cs/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/cs/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/cs/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/cs/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/cs/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/cs/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/cs/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/cs/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/de/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/de/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/de/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/de/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/de/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/de/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/de/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/de/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/de/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/de/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/el/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/el/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/engrampa.omf.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | user's guide 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /help/es/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/es/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/es/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/es/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/fi/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/fi/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/fi/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/fi/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/fr/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/fr/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/fr/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/fr/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/it/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/it/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/it/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/it/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/it/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/it/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/it/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/it/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/it/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/it/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/ja/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ja/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/ja/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ja/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/ja/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ja/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/ja/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ja/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/ja/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/ja/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /help/meson.build: -------------------------------------------------------------------------------- 1 | gnome.yelp('engrampa', 2 | sources : [ 3 | 'index.docbook', 4 | 'legal.xml', 5 | ], 6 | media : [ 7 | 'figures/engrampa_home.png', 8 | 'figures/engrampa_main_window.png', 9 | 'figures/engrampa_rightarrow.png', 10 | 'figures/engrampa_leftarrow.png', 11 | 'figures/engrampa_uparrow.png' 12 | ] 13 | ) 14 | -------------------------------------------------------------------------------- /help/sv/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/sv/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/sv/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/sv/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/uk/figures/engrampa_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/uk/figures/engrampa_home.png -------------------------------------------------------------------------------- /help/uk/figures/engrampa_leftarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/uk/figures/engrampa_leftarrow.png -------------------------------------------------------------------------------- /help/uk/figures/engrampa_main_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/uk/figures/engrampa_main_window.png -------------------------------------------------------------------------------- /help/uk/figures/engrampa_rightarrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/uk/figures/engrampa_rightarrow.png -------------------------------------------------------------------------------- /help/uk/figures/engrampa_uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mate-desktop/engrampa/51a2a84bcd7bd10ff53cf87b58e4b3ec89011df1/help/uk/figures/engrampa_uparrow.png -------------------------------------------------------------------------------- /makepot: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | PACKAGE=engrampa; 4 | 5 | # normal translations 6 | make -C po $PACKAGE.pot && mv po/$PACKAGE.pot . 7 | sed -i "/#, fuzzy/d" $PACKAGE.pot 8 | 9 | # translations for user-quide 10 | rm -f help/$PACKAGE.pot && 11 | make -C help $PACKAGE.pot 12 | -------------------------------------------------------------------------------- /meson_options.txt: -------------------------------------------------------------------------------- 1 | option('run-in-place', 2 | type : 'boolean', 3 | value : false, 4 | description : 'Load ui data from the source tree' 5 | ) 6 | 7 | option('caja-actions', 8 | type : 'boolean', 9 | value : true, 10 | description : 'Build the nautilus context menu actions' 11 | ) 12 | 13 | option('packagekit', 14 | type : 'boolean', 15 | value : true, 16 | description : 'Build PackageKit installer for missing utilities' 17 | ) 18 | 19 | option('magic', 20 | type : 'boolean', 21 | value : true, 22 | description : 'Use libmagic to detect file type' 23 | ) 24 | 25 | option('cpio', 26 | type : 'string', 27 | value : 'auto', 28 | description : 'Path to the cpio program' 29 | ) 30 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | # please keep this list sorted alphabetically 2 | # 3 | af 4 | am 5 | ar 6 | as 7 | ast 8 | az 9 | be 10 | bg 11 | bn 12 | bn_IN 13 | br 14 | bs 15 | ca 16 | ca@valencia 17 | cmn 18 | crh 19 | cs 20 | cy 21 | da 22 | de 23 | dz 24 | el 25 | en_AU 26 | en_CA 27 | en_GB 28 | eo 29 | es 30 | es_AR 31 | es_CL 32 | es_CO 33 | es_CR 34 | es_DO 35 | es_EC 36 | es_ES 37 | es_MX 38 | es_NI 39 | es_PA 40 | es_PE 41 | es_PR 42 | es_SV 43 | es_UY 44 | es_VE 45 | et 46 | eu 47 | fa 48 | fi 49 | fr 50 | fr_CA 51 | frp 52 | fur 53 | fy 54 | ga 55 | gd 56 | gl 57 | gu 58 | ha 59 | he 60 | hi 61 | hr 62 | hu 63 | hy 64 | ia 65 | id 66 | ie 67 | ig 68 | is 69 | it 70 | ja 71 | jv 72 | ka 73 | kab 74 | kk 75 | kn 76 | ko 77 | ks 78 | ku 79 | ku_IQ 80 | ky 81 | li 82 | lt 83 | lv 84 | mai 85 | mg 86 | mi 87 | mk 88 | ml 89 | mn 90 | mr 91 | ms 92 | nb 93 | nds 94 | ne 95 | nl 96 | nn 97 | nso 98 | oc 99 | or 100 | pa 101 | pl 102 | pms 103 | ps 104 | pt 105 | pt_BR 106 | ro 107 | ru 108 | rw 109 | sc 110 | si 111 | sk 112 | sl 113 | sq 114 | sr 115 | sr@latin 116 | sv 117 | ta 118 | te 119 | th 120 | tk 121 | tr 122 | tt 123 | ug 124 | uk 125 | ur 126 | ur_PK 127 | uz 128 | vi 129 | wa 130 | xh 131 | yi 132 | yo 133 | zh_CN 134 | zh_HK 135 | zh_TW 136 | zu 137 | -------------------------------------------------------------------------------- /po/Makevars: -------------------------------------------------------------------------------- 1 | # Makefile variables for PO directory in any package using GNU gettext. 2 | 3 | # Usually the message domain is the same as the package name. 4 | DOMAIN = $(PACKAGE) 5 | 6 | # These two variables depend on the location of this directory. 7 | subdir = po 8 | top_builddir = .. 9 | 10 | # These options get passed to xgettext. 11 | XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --keyword=Description --add-comments=Translators: 12 | 13 | # This is the copyright holder that gets inserted into the header of the 14 | # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding 15 | # package. (Note that the msgstr strings, extracted from the package's 16 | # sources, belong to the copyright holder of the package.) Translators are 17 | # expected to transfer the copyright for their translations to this person 18 | # or entity, or to disclaim their copyright. The empty string stands for 19 | # the public domain; in this case the translators are expected to disclaim 20 | # their copyright. 21 | COPYRIGHT_HOLDER = MATE Desktop Environment team 22 | 23 | # This tells whether or not to prepend "GNU " prefix to the package 24 | # name that gets inserted into the header of the $(DOMAIN).pot file. 25 | # Possible values are "yes", "no", or empty. If it is empty, try to 26 | # detect it automatically by scanning the files in $(top_srcdir) for 27 | # "GNU packagename" string. 28 | PACKAGE_GNU = 29 | 30 | # This is the email address or URL to which the translators shall report 31 | # bugs in the untranslated strings: 32 | # - Strings which are not entire sentences, see the maintainer guidelines 33 | # in the GNU gettext documentation, section 'Preparing Strings'. 34 | # - Strings which use unclear terms or require additional context to be 35 | # understood. 36 | # - Strings which make invalid assumptions about notation of date, time or 37 | # money. 38 | # - Pluralisation problems. 39 | # - Incorrect English spelling. 40 | # - Incorrect formatting. 41 | # It can be your email address, or a mailing list address where translators 42 | # can write to without being subscribed, or the URL of a web page through 43 | # which the translators can contact you. 44 | MSGID_BUGS_ADDRESS = 45 | 46 | # This is the list of locale categories, beyond LC_MESSAGES, for which the 47 | # message catalogs shall be used. It is usually empty. 48 | EXTRA_LOCALE_CATEGORIES = 49 | 50 | # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' 51 | # context. Possible values are "yes" and "no". Set this to yes if the 52 | # package uses functions taking also a message context, like pgettext(), or 53 | # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. 54 | USE_MSGCTXT = no 55 | 56 | # These options get passed to msgmerge. 57 | # Useful options are in particular: 58 | # --previous to keep previous msgids of translated messages, 59 | # --quiet to reduce the verbosity. 60 | MSGMERGE_OPTIONS = 61 | 62 | # These options get passed to msginit. 63 | # If you want to disable line wrapping when writing PO files, add 64 | # --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and 65 | # MSGINIT_OPTIONS. 66 | MSGINIT_OPTIONS = 67 | 68 | # This tells whether or not to regenerate a PO file when $(DOMAIN).pot 69 | # has changed. Possible values are "yes" and "no". Set this to no if 70 | # the POT file is checked in the repository and the version control 71 | # program ignores timestamps. 72 | PO_DEPENDS_ON_POT = yes 73 | 74 | # This tells whether or not to forcibly update $(DOMAIN).pot and 75 | # regenerate PO files on "make dist". Possible values are "yes" and 76 | # "no". Set this to no if the POT file and PO files are maintained 77 | # externally. 78 | DIST_DEPENDS_ON_UPDATE_PO = yes 79 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT. This file is automatically generated. 2 | # List of source files which contain translatable strings. 3 | mate-submodules/libegg/eggdesktopfile.c 4 | mate-submodules/libegg/eggdesktopfile.h 5 | mate-submodules/libegg/eggsmclient.c 6 | mate-submodules/libegg/eggsmclient.h 7 | mate-submodules/libegg/eggsmclient-private.h 8 | mate-submodules/libegg/eggsmclient-xsmp.c 9 | data/engrampa.appdata.xml.in.in 10 | data/engrampa.desktop.in.in 11 | data/org.mate.engrampa.gschema.xml.in 12 | caja/engrampa-module.c 13 | caja/caja-engrampa.c 14 | caja/caja-engrampa.h 15 | caja/libcaja-engrampa.caja-extension.desktop.in.in 16 | src/actions.c 17 | src/actions.h 18 | src/dlg-add-files.c 19 | src/dlg-add-files.h 20 | src/dlg-add-folder.c 21 | src/dlg-add-folder.h 22 | src/dlg-ask-password.c 23 | src/dlg-ask-password.h 24 | src/dlg-batch-add.c 25 | src/dlg-batch-add.h 26 | src/dlg-delete.c 27 | src/dlg-delete.h 28 | src/dlg-extract.c 29 | src/dlg-extract.h 30 | src/dlg-new.c 31 | src/dlg-new.h 32 | src/dlg-open-with.c 33 | src/dlg-open-with.h 34 | src/dlg-package-installer.c 35 | src/dlg-package-installer.h 36 | src/dlg-password.c 37 | src/dlg-password.h 38 | src/dlg-prop.c 39 | src/dlg-prop.h 40 | src/dlg-update.c 41 | src/dlg-update.h 42 | src/eggfileformatchooser.c 43 | src/eggfileformatchooser.h 44 | src/egg-macros.h 45 | src/eggtreemultidnd.c 46 | src/eggtreemultidnd.h 47 | src/file-data.c 48 | src/file-data.h 49 | src/file-utils.c 50 | src/file-utils.h 51 | src/fr-archive.c 52 | src/fr-archive.h 53 | src/fr-command-7z.c 54 | src/fr-command-7z.h 55 | src/fr-command-ace.c 56 | src/fr-command-ace.h 57 | src/fr-command-alz.c 58 | src/fr-command-alz.h 59 | src/fr-command-ar.c 60 | src/fr-command-ar.h 61 | src/fr-command-arj.c 62 | src/fr-command-arj.h 63 | src/fr-command.c 64 | src/fr-command-cfile.c 65 | src/fr-command-cfile.h 66 | src/fr-command-cpio.c 67 | src/fr-command-cpio.h 68 | src/fr-command-dpkg.c 69 | src/fr-command-dpkg.h 70 | src/fr-command.h 71 | src/fr-command-iso.c 72 | src/fr-command-iso.h 73 | src/fr-command-jar.c 74 | src/fr-command-jar.h 75 | src/fr-command-lha.c 76 | src/fr-command-lha.h 77 | src/fr-command-lrzip.c 78 | src/fr-command-lrzip.h 79 | src/fr-command-nomarch.c 80 | src/fr-command-nomarch.h 81 | src/fr-command-rar.c 82 | src/fr-command-rar.h 83 | src/fr-command-rpm.c 84 | src/fr-command-rpm.h 85 | src/fr-command-tar.c 86 | src/fr-command-tar.h 87 | src/fr-command-unstuff.c 88 | src/fr-command-unstuff.h 89 | src/fr-command-zip.c 90 | src/fr-command-zip.h 91 | src/fr-command-zoo.c 92 | src/fr-command-zoo.h 93 | src/fr-error.c 94 | src/fr-error.h 95 | src/fr-init.c 96 | src/fr-init.h 97 | src/fr-list-model.c 98 | src/fr-list-model.h 99 | src/fr-proc-error.c 100 | src/fr-proc-error.h 101 | src/fr-process.c 102 | src/fr-process.h 103 | src/fr-window.c 104 | src/fr-window.h 105 | src/gio-utils.c 106 | src/gio-utils.h 107 | src/glib-utils.c 108 | src/glib-utils.h 109 | src/gtk-utils.c 110 | src/gtk-utils.h 111 | src/java-utils.c 112 | src/java-utils.h 113 | src/main.c 114 | src/open-file.c 115 | src/open-file.h 116 | src/preferences.c 117 | src/preferences.h 118 | src/rar-utils.c 119 | src/rar-utils.h 120 | src/server.c 121 | src/test-server.c 122 | src/typedefs.h 123 | src/ui/add-options.ui 124 | src/ui/batch-add-files.ui 125 | src/ui/batch-password.ui 126 | src/ui/delete.ui 127 | src/ui/dlg-add-files.ui 128 | src/ui/dlg-add-folder.ui 129 | src/ui/dlg-extract.ui 130 | src/ui.h 131 | src/ui/menus-toolbars.ui 132 | src/ui/new.ui 133 | src/ui/password.ui 134 | src/ui/properties.ui 135 | src/ui/update.ui 136 | -------------------------------------------------------------------------------- /po/POTFILES.skip: -------------------------------------------------------------------------------- 1 | data/engrampa.desktop.in 2 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(gettext_package, preset : 'glib') 2 | -------------------------------------------------------------------------------- /postinstall.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import os 4 | import subprocess 5 | 6 | prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') 7 | datadir = os.path.join(prefix, 'share') 8 | 9 | # Packaging tools define DESTDIR and this isn't needed for them 10 | if 'DESTDIR' not in os.environ: 11 | print('Updating icon cache…') 12 | icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor') 13 | if not os.path.exists(icon_cache_dir): 14 | os.makedirs(icon_cache_dir) 15 | subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir]) 16 | 17 | print('Updating desktop database…') 18 | desktop_database_dir = os.path.join(datadir, 'applications') 19 | if not os.path.exists(desktop_database_dir): 20 | os.makedirs(desktop_database_dir) 21 | subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) 22 | 23 | print('Compiling GSettings schemas…') 24 | schemas_dir = os.path.join(datadir, 'glib-2.0', 'schemas') 25 | if not os.path.exists(schemas_dir): 26 | os.makedirs(schemas_dir) 27 | subprocess.call(['glib-compile-schemas', schemas_dir]) 28 | -------------------------------------------------------------------------------- /src/dlg-add-files.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_ADD_FILES_H 24 | #define DLG_ADD_FILES_H 25 | 26 | #include 27 | 28 | void add_files_cb (GtkWidget *widget, void *data); 29 | 30 | #endif /* DLG_ADD_FILES_H */ 31 | -------------------------------------------------------------------------------- /src/dlg-add-folder.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_ADD_FOLDER_H 24 | #define DLG_ADD_FOLDER_H 25 | 26 | #include 27 | 28 | void add_folder_cb (GtkWidget *widget, void *data); 29 | 30 | #endif /* DLG_ADD_FOLDER_H */ 31 | -------------------------------------------------------------------------------- /src/dlg-ask-password.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include "dlg-ask-password.h" 27 | #include "file-utils.h" 28 | #include "fr-window.h" 29 | #include "glib-utils.h" 30 | #include "gtk-utils.h" 31 | 32 | #define GET_LABEL(x) (GTK_LABEL (gtk_builder_get_object (builder, (x)))) 33 | #define GET_WIDGET(x) (GTK_WIDGET (gtk_builder_get_object (builder, (x)))) 34 | 35 | typedef enum { 36 | FR_PASSWORD_TYPE_MAIN, 37 | FR_PASSWORD_TYPE_PASTE_FROM 38 | } FrPasswordType; 39 | 40 | typedef struct { 41 | FrWindow *window; 42 | FrPasswordType pwd_type; 43 | GtkWidget *dialog; 44 | GtkWidget *pw_password_entry; 45 | } DialogData; 46 | 47 | /* called when the main dialog is closed. */ 48 | static void 49 | destroy_cb (GtkWidget *widget, 50 | DialogData *data) 51 | { 52 | g_free (data); 53 | } 54 | 55 | static void 56 | ask_password__response_cb (GtkWidget *dialog, 57 | int response_id, 58 | DialogData *data) 59 | { 60 | char *password; 61 | 62 | switch (response_id) { 63 | case GTK_RESPONSE_OK: 64 | password = _gtk_entry_get_locale_text (GTK_ENTRY (data->pw_password_entry)); 65 | if (data->pwd_type == FR_PASSWORD_TYPE_MAIN) 66 | fr_window_set_password (data->window, password); 67 | else if (data->pwd_type == FR_PASSWORD_TYPE_PASTE_FROM) 68 | fr_window_set_password_for_paste (data->window, password); 69 | g_free (password); 70 | if (fr_window_is_batch_mode (data->window)) 71 | fr_window_resume_batch (data->window); 72 | else 73 | fr_window_restart_current_batch_action (data->window); 74 | break; 75 | 76 | default: 77 | if (fr_window_is_batch_mode (data->window)) 78 | gtk_widget_destroy (GTK_WIDGET (data->window)); 79 | else 80 | fr_window_reset_current_batch_action (data->window); 81 | break; 82 | } 83 | 84 | gtk_widget_destroy (data->dialog); 85 | } 86 | 87 | static void 88 | dlg_ask_password__common (FrWindow *window, 89 | FrPasswordType pwd_type) 90 | { 91 | GtkBuilder *builder; 92 | DialogData *data; 93 | char *text; 94 | char *name = NULL; 95 | 96 | data = g_new0 (DialogData, 1); 97 | builder = gtk_builder_new_from_resource (ENGRAMPA_RESOURCE_UI_PATH G_DIR_SEPARATOR_S "batch-password.ui"); 98 | data->window = window; 99 | data->pwd_type = pwd_type; 100 | 101 | /* Get the widgets. */ 102 | 103 | data->dialog = GET_WIDGET ("password_dialog"); 104 | data->pw_password_entry = GET_WIDGET ("pw_password_entry"); 105 | 106 | /* Set widgets data. */ 107 | 108 | if (data->pwd_type == FR_PASSWORD_TYPE_MAIN) 109 | name = g_uri_display_basename (fr_window_get_archive_uri (window)); 110 | else if (data->pwd_type == FR_PASSWORD_TYPE_PASTE_FROM) 111 | name = g_uri_display_basename (fr_window_get_paste_archive_uri (window)); 112 | g_assert (name != NULL); 113 | text = g_strdup_printf (_("Enter the password for the archive '%s'."), name); 114 | gtk_label_set_label (GET_LABEL ("pw_password_label"), text); 115 | g_free (text); 116 | 117 | if (fr_window_get_password (window) != NULL) 118 | _gtk_entry_set_locale_text (GTK_ENTRY (data->pw_password_entry), 119 | fr_window_get_password (window)); 120 | 121 | /* Set the signals handlers. */ 122 | 123 | gtk_builder_add_callback_symbols (builder, 124 | "on_password_dialog_destroy", G_CALLBACK (destroy_cb), 125 | "on_password_dialog_response", G_CALLBACK (ask_password__response_cb), 126 | NULL); 127 | 128 | gtk_builder_connect_signals (builder, data); 129 | 130 | g_object_unref (builder); 131 | 132 | /* Run dialog. */ 133 | 134 | gtk_widget_grab_focus (data->pw_password_entry); 135 | if (gtk_widget_get_realized (GTK_WIDGET (window))) { 136 | gtk_window_set_transient_for (GTK_WINDOW (data->dialog), 137 | GTK_WINDOW (window)); 138 | gtk_window_set_modal (GTK_WINDOW (data->dialog), TRUE); 139 | } 140 | else 141 | gtk_window_set_title (GTK_WINDOW (data->dialog), name); 142 | g_free (name); 143 | 144 | gtk_widget_show (data->dialog); 145 | } 146 | 147 | void 148 | dlg_ask_password (FrWindow *window) 149 | { 150 | dlg_ask_password__common (window, FR_PASSWORD_TYPE_MAIN); 151 | } 152 | 153 | void 154 | dlg_ask_password_for_paste_operation (FrWindow *window) 155 | { 156 | dlg_ask_password__common (window, FR_PASSWORD_TYPE_PASTE_FROM); 157 | } 158 | -------------------------------------------------------------------------------- /src/dlg-ask-password.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_PASSWORD_H 24 | #define DLG_PASSWORD_H 25 | 26 | #include "fr-window.h" 27 | 28 | void dlg_ask_password (FrWindow *window); 29 | void dlg_ask_password_for_paste_operation (FrWindow *window); 30 | 31 | #endif /* DLG_PASSWORD_H */ 32 | -------------------------------------------------------------------------------- /src/dlg-batch-add.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_BATCH_ADD_H 24 | #define DLG_BATCH_ADD_H 25 | 26 | #include "fr-window.h" 27 | 28 | void dlg_batch_add_files (FrWindow *window, 29 | GList *file_list); 30 | 31 | #endif /* DLG_BATCH_ADD_H */ 32 | -------------------------------------------------------------------------------- /src/dlg-delete.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_DELETE_H 24 | #define DLG_DELETE_H 25 | 26 | void dlg_delete (GtkWidget *widget, gpointer data); 27 | void dlg_delete_from_sidebar (GtkWidget *widget, gpointer data); 28 | 29 | #endif /* DLG_DELETE_H */ 30 | -------------------------------------------------------------------------------- /src/dlg-extract.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_EXTRACT_H 24 | #define DLG_EXTRACT_H 25 | 26 | #include "fr-archive.h" 27 | #include "fr-window.h" 28 | 29 | void dlg_extract (GtkWidget *widget, gpointer data); 30 | void dlg_extract_folder_from_sidebar (GtkWidget *widget, gpointer data); 31 | 32 | #endif /* DLG_EXTRACT_H */ 33 | -------------------------------------------------------------------------------- /src/dlg-new.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2008 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_NEW_H 24 | #define DLG_NEW_H 25 | 26 | #include 27 | #include "eggfileformatchooser.h" 28 | #include "fr-window.h" 29 | 30 | typedef struct { 31 | FrWindow *window; 32 | int *supported_types; 33 | gboolean can_encrypt; 34 | gboolean can_encrypt_header; 35 | gboolean can_create_volumes; 36 | GtkBuilder *builder; 37 | 38 | GFile *original_file; 39 | GtkWidget *dialog; 40 | /*GtkWidget *n_archive_type_combo_box;*/ 41 | GtkWidget *n_other_options_expander; 42 | GtkWidget *n_password_entry; 43 | GtkWidget *n_password_label; 44 | GtkWidget *n_encrypt_header_checkbutton; 45 | GtkWidget *n_volume_checkbutton; 46 | GtkWidget *n_volume_spinbutton; 47 | GtkWidget *n_volume_box; 48 | EggFileFormatChooser *format_chooser; 49 | } DlgNewData; 50 | 51 | DlgNewData * dlg_new (FrWindow *window); 52 | DlgNewData * dlg_save_as (FrWindow *window, 53 | const char *default_name); 54 | const char * dlg_new_data_get_password (DlgNewData *data); 55 | gboolean dlg_new_data_get_encrypt_header (DlgNewData *data); 56 | int dlg_new_data_get_volume_size (DlgNewData *data); 57 | 58 | #endif /* DLG_NEW_H */ 59 | -------------------------------------------------------------------------------- /src/dlg-open-with.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include 25 | 26 | #include 27 | #include "file-utils.h" 28 | #include "glib-utils.h" 29 | #include "gtk-utils.h" 30 | #include "fr-init.h" 31 | #include "fr-window.h" 32 | #include "dlg-open-with.h" 33 | 34 | typedef struct { 35 | FrWindow *window; 36 | GList *file_list; 37 | } OpenData; 38 | 39 | static void 40 | app_chooser_response_cb (GtkDialog *dialog, 41 | int response_id, 42 | gpointer user_data) 43 | { 44 | OpenData *o_data = user_data; 45 | GAppInfo *app_info; 46 | 47 | switch (response_id) { 48 | case GTK_RESPONSE_OK: 49 | app_info = gtk_app_chooser_get_app_info (GTK_APP_CHOOSER (dialog)); 50 | if (app_info != NULL) { 51 | fr_window_open_files_with_application (o_data->window, o_data->file_list, app_info); 52 | g_object_unref (app_info); 53 | } 54 | g_free (o_data); 55 | gtk_widget_destroy (GTK_WIDGET (dialog)); 56 | break; 57 | 58 | case GTK_RESPONSE_CANCEL: 59 | case GTK_RESPONSE_DELETE_EVENT: 60 | g_free (o_data); 61 | gtk_widget_destroy (GTK_WIDGET (dialog)); 62 | break; 63 | 64 | default: 65 | break; 66 | } 67 | } 68 | 69 | void 70 | dlg_open_with (FrWindow *window, 71 | GList *file_list) 72 | { 73 | OpenData *o_data; 74 | GtkWidget *app_chooser; 75 | GFile *first_file; 76 | 77 | o_data = g_new0 (OpenData, 1); 78 | o_data->window = window; 79 | o_data->file_list = file_list; 80 | 81 | first_file = g_file_new_for_path (file_list->data); 82 | app_chooser = gtk_app_chooser_dialog_new (GTK_WINDOW (window), 83 | GTK_DIALOG_MODAL, 84 | first_file); 85 | g_signal_connect (app_chooser, 86 | "response", 87 | G_CALLBACK (app_chooser_response_cb), 88 | o_data); 89 | gtk_widget_show (app_chooser); 90 | } 91 | 92 | void 93 | open_with_cb (GtkWidget *widget, 94 | void *callback_data) 95 | { 96 | FrWindow *window = callback_data; 97 | GList *file_list; 98 | 99 | file_list = fr_window_get_file_list_selection (window, FALSE, NULL); 100 | if (file_list == NULL) 101 | return; 102 | 103 | fr_window_open_files (window, file_list, TRUE); 104 | path_list_free (file_list); 105 | } 106 | -------------------------------------------------------------------------------- /src/dlg-open-with.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_OPEN_WITH_H 24 | #define DLG_OPEN_WITH_H 25 | 26 | #include 27 | #include "fr-window.h" 28 | 29 | void open_with_cb (GtkWidget *widget, void *data); 30 | void dlg_open_with (FrWindow *window, GList *file_list); 31 | 32 | #endif /* DLG_OPEN_WITH_H */ 33 | -------------------------------------------------------------------------------- /src/dlg-package-installer.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001-2009 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_PACKAGE_INSTALLER_H 24 | #define DLG_PACKAGE_INSTALLER_H 25 | 26 | #include "fr-window.h" 27 | 28 | void dlg_package_installer (FrWindow *window, 29 | FrArchive *archive, 30 | FrAction action); 31 | 32 | #endif /* DLG_PACKAGE_INSTALLER_H */ 33 | -------------------------------------------------------------------------------- /src/dlg-password.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include "fr-window.h" 27 | #include "gtk-utils.h" 28 | #include "preferences.h" 29 | #include "dlg-password.h" 30 | 31 | #define GET_WIDGET(x) (GTK_WIDGET (gtk_builder_get_object (builder, (x)))) 32 | 33 | typedef struct { 34 | FrWindow *window; 35 | GtkWidget *dialog; 36 | GtkWidget *pw_password_entry; 37 | GtkWidget *pw_encrypt_header_checkbutton; 38 | } DialogData; 39 | 40 | /* called when the main dialog is closed. */ 41 | static void 42 | destroy_cb (GtkWidget *widget, 43 | DialogData *data) 44 | { 45 | g_free (data); 46 | } 47 | 48 | static void 49 | response_cb (GtkWidget *dialog, 50 | int response_id, 51 | DialogData *data) 52 | { 53 | char *password; 54 | gboolean encrypt_header; 55 | 56 | switch (response_id) { 57 | case GTK_RESPONSE_OK: 58 | password = _gtk_entry_get_locale_text (GTK_ENTRY (data->pw_password_entry)); 59 | fr_window_set_password (data->window, password); 60 | g_free (password); 61 | 62 | encrypt_header = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->pw_encrypt_header_checkbutton)); 63 | { 64 | GSettings *settings; 65 | 66 | settings = g_settings_new (ENGRAMPA_SCHEMA_GENERAL); 67 | g_settings_set_boolean (settings, PREF_GENERAL_ENCRYPT_HEADER, encrypt_header); 68 | g_object_unref (settings); 69 | } 70 | fr_window_set_encrypt_header (data->window, encrypt_header); 71 | break; 72 | default: 73 | break; 74 | } 75 | 76 | gtk_widget_destroy (data->dialog); 77 | } 78 | 79 | void 80 | dlg_password (GtkWidget *widget, 81 | gpointer callback_data) 82 | { 83 | GtkBuilder *builder; 84 | FrWindow *window = callback_data; 85 | DialogData *data; 86 | 87 | data = g_new0 (DialogData, 1); 88 | builder = gtk_builder_new_from_resource (ENGRAMPA_RESOURCE_UI_PATH G_DIR_SEPARATOR_S "password.ui"); 89 | data->window = window; 90 | 91 | /* Get the widgets. */ 92 | 93 | data->dialog = GET_WIDGET ("password_dialog"); 94 | data->pw_password_entry = GET_WIDGET ("pw_password_entry"); 95 | data->pw_encrypt_header_checkbutton = GET_WIDGET ("pw_encrypt_header_checkbutton"); 96 | 97 | /* Set widgets data. */ 98 | 99 | _gtk_entry_set_locale_text (GTK_ENTRY (data->pw_password_entry), fr_window_get_password (window)); 100 | gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->pw_encrypt_header_checkbutton), fr_window_get_encrypt_header (window)); 101 | 102 | /* Set the signals handlers. */ 103 | 104 | gtk_builder_add_callback_symbols (builder, 105 | "on_password_dialog_destroy", G_CALLBACK (destroy_cb), 106 | "on_password_dialog_response", G_CALLBACK (response_cb), 107 | NULL); 108 | 109 | gtk_builder_connect_signals (builder, data); 110 | g_object_unref (builder); 111 | 112 | /* Run dialog. */ 113 | 114 | gtk_widget_grab_focus (data->pw_password_entry); 115 | if (gtk_widget_get_realized (GTK_WIDGET (window))) 116 | gtk_window_set_transient_for (GTK_WINDOW (data->dialog), 117 | GTK_WINDOW (window)); 118 | gtk_window_set_modal (GTK_WINDOW (data->dialog), TRUE); 119 | 120 | gtk_widget_show (data->dialog); 121 | } 122 | -------------------------------------------------------------------------------- /src/dlg-password.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_PASSWORD_H 24 | #define DLG_PASSWORD_H 25 | 26 | #include "fr-window.h" 27 | 28 | void dlg_password (GtkWidget *widget, 29 | gpointer callback_data); 30 | 31 | #endif /* DLG_PASSWORD_H */ 32 | -------------------------------------------------------------------------------- /src/dlg-prop.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_PROP_H 24 | #define DLG_PROP_H 25 | 26 | #include "fr-window.h" 27 | 28 | void dlg_prop (FrWindow *window); 29 | 30 | #endif /* DLG_DELETE_H */ 31 | -------------------------------------------------------------------------------- /src/dlg-update.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2008 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef DLG_UPDATE_H 24 | #define DLG_UPDATE_H 25 | 26 | #include 27 | #include "fr-window.h" 28 | #include "open-file.h" 29 | 30 | gpointer dlg_update (FrWindow *window); 31 | void dlg_update_add_file (gpointer dialog, 32 | OpenFile *file); 33 | 34 | #endif /* DLG_UPDATE_H */ 35 | -------------------------------------------------------------------------------- /src/eggfileformatchooser.h: -------------------------------------------------------------------------------- 1 | /* EggFileFormatChooser 2 | * Copyright (C) 2007 Mathias Hasselmann 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | #ifndef __EGG_FILE_FORMAT_CHOOSER_H__ 20 | #define __EGG_FILE_FORMAT_CHOOSER_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define EGG_TYPE_FILE_FORMAT_CHOOSER (egg_file_format_chooser_get_type()) 27 | #define EGG_FILE_FORMAT_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_CAST(obj, EGG_TYPE_FILE_FORMAT_CHOOSER, EggFileFormatChooser)) 28 | #define EGG_FILE_FORMAT_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST(klass, EGG_TYPE_FILE_FORMAT_CHOOSER, EggFileFormatChooserClass)) 29 | #define EGG_IS_FILE_FORMAT_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE(obj, EGG_TYPE_FILE_FORMAT_CHOOSER)) 30 | #define EGG_IS_FILE_FORMAT_CHOOSER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE(obj, EGG_TYPE_FILE_FORMAT_CHOOSER)) 31 | #define EGG_FILE_FORMAT_CHOOSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), EGG_TYPE_FILE_FORMAT_CHOOSER, EggFileFormatChooserClass)) 32 | 33 | typedef struct _EggFileFormatChooser EggFileFormatChooser; 34 | typedef struct _EggFileFormatChooserClass EggFileFormatChooserClass; 35 | typedef struct _EggFileFormatChooserPrivate EggFileFormatChooserPrivate; 36 | 37 | struct _EggFileFormatChooser 38 | { 39 | GtkExpander parent; 40 | EggFileFormatChooserPrivate *priv; 41 | }; 42 | 43 | struct _EggFileFormatChooserClass 44 | { 45 | GtkExpanderClass parent; 46 | 47 | void (*selection_changed)(EggFileFormatChooser *self); 48 | }; 49 | 50 | GType egg_file_format_chooser_get_type (void) G_GNUC_CONST; 51 | GtkWidget* egg_file_format_chooser_new (void); 52 | 53 | guint egg_file_format_chooser_add_format (EggFileFormatChooser *self, 54 | guint parent, 55 | const gchar *name, 56 | const gchar *icon, 57 | ...) G_GNUC_NULL_TERMINATED; 58 | void egg_file_format_chooser_add_pixbuf_formats (EggFileFormatChooser *self, 59 | guint parent, 60 | guint **formats); 61 | void egg_file_format_chooser_remove_format (EggFileFormatChooser *self, 62 | guint format); 63 | 64 | void egg_file_format_chooser_set_format (EggFileFormatChooser *self, 65 | guint format); 66 | guint egg_file_format_chooser_get_format (EggFileFormatChooser *self, 67 | const gchar *filename); 68 | 69 | void egg_file_format_chooser_set_format_data (EggFileFormatChooser *self, 70 | guint format, 71 | gpointer data, 72 | GDestroyNotify destroy); 73 | gpointer egg_file_format_chooser_get_format_data (EggFileFormatChooser *self, 74 | guint format); 75 | 76 | gchar* egg_file_format_chooser_append_extension (EggFileFormatChooser *self, 77 | const gchar *filename, 78 | guint format); 79 | void egg_file_format_chooser_emit_size_changed (EggFileFormatChooser *self); 80 | 81 | G_END_DECLS 82 | 83 | #endif /* __EGG_FILE_FORMAT_CHOOSER_H__ */ 84 | 85 | /* vim: set sw=2 sta et: */ 86 | -------------------------------------------------------------------------------- /src/eggtreemultidnd.h: -------------------------------------------------------------------------------- 1 | /* eggtreednd.h 2 | * Copyright (C) 2001 Red Hat, Inc. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __EGG_TREE_MULTI_DND_H__ 21 | #define __EGG_TREE_MULTI_DND_H__ 22 | 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define EGG_TYPE_TREE_MULTI_DRAG_SOURCE (egg_tree_multi_drag_source_get_type ()) 28 | #define EGG_TREE_MULTI_DRAG_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TREE_MULTI_DRAG_SOURCE, EggTreeMultiDragSource)) 29 | #define EGG_IS_TREE_MULTI_DRAG_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TREE_MULTI_DRAG_SOURCE)) 30 | #define EGG_TREE_MULTI_DRAG_SOURCE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), EGG_TYPE_TREE_MULTI_DRAG_SOURCE, EggTreeMultiDragSourceIface)) 31 | 32 | typedef struct _EggTreeMultiDragSource EggTreeMultiDragSource; /* Dummy typedef */ 33 | typedef struct _EggTreeMultiDragSourceIface EggTreeMultiDragSourceIface; 34 | 35 | struct _EggTreeMultiDragSourceIface 36 | { 37 | GTypeInterface g_iface; 38 | 39 | /* VTable - not signals */ 40 | gboolean (* row_draggable) (EggTreeMultiDragSource *drag_source, 41 | GList *path_list); 42 | 43 | gboolean (* drag_data_get) (EggTreeMultiDragSource *drag_source, 44 | GdkDragContext *context, 45 | GtkSelectionData *selection_data, 46 | GList *path_list); 47 | 48 | gboolean (* drag_data_delete) (EggTreeMultiDragSource *drag_source, 49 | GList *path_list); 50 | }; 51 | 52 | GType egg_tree_multi_drag_source_get_type (void) G_GNUC_CONST; 53 | 54 | /* Returns whether the given row can be dragged */ 55 | gboolean egg_tree_multi_drag_source_row_draggable (EggTreeMultiDragSource *drag_source, 56 | GList *path_list); 57 | 58 | /* Deletes the given row, or returns FALSE if it can't */ 59 | gboolean egg_tree_multi_drag_source_drag_data_delete (EggTreeMultiDragSource *drag_source, 60 | GList *path_list); 61 | 62 | /* Fills in selection_data with type selection_data->target based on the row 63 | * denoted by path, returns TRUE if it does anything 64 | */ 65 | gboolean egg_tree_multi_drag_source_drag_data_get (EggTreeMultiDragSource *drag_source, 66 | GdkDragContext *context, 67 | GtkSelectionData *selection_data, 68 | GList *path_list); 69 | 70 | void egg_tree_multi_drag_add_drag_support (GtkTreeView *tree_view); 71 | 72 | G_END_DECLS 73 | 74 | #endif /* __EGG_TREE_MULTI_DND_H__ */ 75 | -------------------------------------------------------------------------------- /src/engrampa.gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ui/add-options.ui 5 | ui/batch-add-files.ui 6 | ui/batch-password.ui 7 | ui/delete.ui 8 | ui/dlg-add-files.ui 9 | ui/dlg-add-folder.ui 10 | ui/dlg-extract.ui 11 | ui/engrampa.about 12 | ui/menus-toolbars.ui 13 | ui/new.ui 14 | ui/password.ui 15 | ui/properties.ui 16 | ui/update.ui 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/file-data.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001-2006 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include "glib-utils.h" 27 | #include "file-utils.h" 28 | #include "file-data.h" 29 | 30 | FileData * 31 | file_data_new (void) 32 | { 33 | FileData *fdata; 34 | 35 | fdata = g_new0 (FileData, 1); 36 | fdata->content_type = NULL; 37 | fdata->free_original_path = FALSE; 38 | fdata->dir_size = 0; 39 | 40 | return fdata; 41 | } 42 | 43 | void 44 | file_data_free (FileData *fdata) 45 | { 46 | if (fdata == NULL) 47 | return; 48 | if (fdata->free_original_path) 49 | g_free (fdata->original_path); 50 | g_free (fdata->full_path); 51 | g_free (fdata->name); 52 | g_free (fdata->path); 53 | g_free (fdata->link); 54 | g_free (fdata->list_name); 55 | g_free (fdata->sort_key); 56 | g_free (fdata); 57 | } 58 | 59 | FileData * 60 | file_data_copy (FileData *src) 61 | { 62 | FileData *fdata; 63 | 64 | fdata = g_new0 (FileData, 1); 65 | 66 | fdata->original_path = g_strdup (src->original_path); 67 | fdata->free_original_path = TRUE; 68 | 69 | fdata->full_path = g_strdup (src->full_path); 70 | fdata->link = g_strdup (src->link); 71 | fdata->size = src->size; 72 | fdata->modified = src->modified; 73 | fdata->name = g_strdup (src->name); 74 | fdata->path = g_strdup (src->path); 75 | fdata->content_type = src->content_type; 76 | fdata->encrypted = src->encrypted; 77 | fdata->dir = src->dir; 78 | fdata->dir_size = src->dir_size; 79 | 80 | fdata->list_dir = src->list_dir; 81 | fdata->list_name = g_strdup (src->list_name); 82 | fdata->sort_key = g_strdup (src->sort_key); 83 | 84 | return fdata; 85 | } 86 | 87 | GType 88 | file_data_get_type (void) 89 | { 90 | static GType type = 0; 91 | 92 | if (type == 0) 93 | type = g_boxed_type_register_static ("FRFileData", (GBoxedCopyFunc) file_data_copy, (GBoxedFreeFunc) file_data_free); 94 | 95 | return type; 96 | } 97 | 98 | void 99 | file_data_update_content_type (FileData *fdata) 100 | { 101 | if (fdata->dir) { 102 | fdata->content_type = MIME_TYPE_DIRECTORY; 103 | } else { 104 | char *content_type; 105 | 106 | content_type = g_content_type_guess (fdata->full_path, NULL, 0, NULL); 107 | fdata->content_type = get_static_string (content_type); 108 | g_free (content_type); 109 | } 110 | } 111 | 112 | gboolean 113 | file_data_is_dir (FileData *fdata) 114 | { 115 | return fdata->dir || fdata->list_dir; 116 | } 117 | 118 | void 119 | file_data_set_list_name (FileData *fdata, 120 | const char *value) 121 | { 122 | g_free (fdata->list_name); 123 | fdata->list_name = g_strdup (value); 124 | 125 | g_free (fdata->sort_key); 126 | if (fdata->list_name != NULL) 127 | fdata->sort_key = g_utf8_collate_key_for_filename (fdata->list_name, -1); 128 | else 129 | fdata->sort_key = NULL; 130 | } 131 | 132 | int 133 | file_data_compare_by_path (gconstpointer a, 134 | gconstpointer b) 135 | { 136 | FileData *data_a = *((FileData **) a); 137 | FileData *data_b = *((FileData **) b); 138 | 139 | return strcmp (data_a->full_path, data_b->full_path); 140 | } 141 | 142 | int 143 | find_path_in_file_data_array (GPtrArray *array, 144 | const char *path) 145 | { 146 | int path_l; 147 | int left; 148 | int right; 149 | 150 | if (path == NULL) 151 | return -1; 152 | 153 | path_l = strlen (path); 154 | left = 0; 155 | right = array->len; 156 | while (left < right) { 157 | FileData *fd; 158 | int p; 159 | int cmp; 160 | 161 | p = left + ((right - left) / 2); 162 | fd = (FileData *) g_ptr_array_index (array, p); 163 | cmp = strcmp (path, fd->original_path); 164 | if (cmp != 0) { 165 | /* consider '/path/to/dir' and '/path/to/dir/' the same path */ 166 | int original_path_l; 167 | 168 | original_path_l = strlen (fd->original_path); 169 | 170 | if ((path_l == original_path_l - 1) && (fd->original_path[original_path_l - 1] == '/')) { 171 | int cmp2; 172 | 173 | cmp2 = strncmp (path, fd->original_path, original_path_l - 1); 174 | if (cmp2 == 0) 175 | cmp = cmp2; 176 | } 177 | } 178 | 179 | if (cmp == 0) 180 | return p; 181 | else if (cmp < 0) 182 | right = p; 183 | else 184 | left = p + 1; 185 | } 186 | 187 | return -1; 188 | } 189 | -------------------------------------------------------------------------------- /src/file-data.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FILE_DATA_H 24 | #define FILE_DATA_H 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | typedef struct { 31 | char *original_path; /* path read from command line. */ 32 | char *full_path; /* "/" + original_path. */ 33 | char *link; 34 | goffset size; 35 | time_t modified; 36 | 37 | char *name; /* The file name. */ 38 | char *path; /* The directory. */ 39 | gboolean encrypted; /* Whether the file is encrypted. */ 40 | gboolean dir; /* Whether this is a directory listed in the archive */ 41 | goffset dir_size; 42 | const char *content_type; 43 | 44 | /* Additional data. */ 45 | 46 | gboolean list_dir; /* Whether this entry is used to show 47 | * a directory. */ 48 | char *list_name; /* The string visualized in the list 49 | * view. */ 50 | char *sort_key; 51 | 52 | /* Private data */ 53 | 54 | gboolean free_original_path; 55 | } FileData; 56 | 57 | #define FR_TYPE_FILE_DATA (file_data_get_type ()) 58 | 59 | GType file_data_get_type (void); 60 | FileData * file_data_new (void); 61 | FileData * file_data_copy (FileData *src); 62 | void file_data_free (FileData *fdata); 63 | void file_data_update_content_type (FileData *fdata); 64 | gboolean file_data_is_dir (FileData *fdata); 65 | void file_data_set_list_name (FileData *fdata, 66 | const char *value); 67 | int file_data_compare_by_path (gconstpointer a, 68 | gconstpointer b); 69 | int find_path_in_file_data_array (GPtrArray *array, 70 | const char *path); 71 | 72 | #endif /* FILE_DATA_H */ 73 | -------------------------------------------------------------------------------- /src/fr-command-7z.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2004 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_7Z_H 24 | #define FR_COMMAND_7Z_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_7Z (fr_command_7z_get_type ()) 31 | #define FR_COMMAND_7Z(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_7Z, FrCommand7z)) 32 | #define FR_COMMAND_7Z_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_7Z, FrCommand7zClass)) 33 | #define FR_IS_COMMAND_7Z(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_7Z)) 34 | #define FR_IS_COMMAND_7Z_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_7Z)) 35 | #define FR_COMMAND_7Z_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_7Z, FrCommand7zClass)) 36 | 37 | typedef struct _FrCommand7z FrCommand7z; 38 | typedef struct _FrCommand7zClass FrCommand7zClass; 39 | 40 | struct _FrCommand7z 41 | { 42 | FrCommand __parent; 43 | gboolean list_started; 44 | gboolean old_style; 45 | FileData *fdata; 46 | }; 47 | 48 | struct _FrCommand7zClass 49 | { 50 | FrCommandClass __parent_class; 51 | }; 52 | 53 | GType fr_command_7z_get_type (void); 54 | 55 | #endif /* FR_COMMAND_7Z_H */ 56 | -------------------------------------------------------------------------------- /src/fr-command-ace.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2006 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ACE_H 24 | #define FR_COMMAND_ACE_H 25 | 26 | #include 27 | #include "file-data.h" 28 | #include "fr-command.h" 29 | #include "fr-process.h" 30 | 31 | #define FR_TYPE_COMMAND_ACE (fr_command_ace_get_type ()) 32 | #define FR_COMMAND_ACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ACE, FrCommandAce)) 33 | #define FR_COMMAND_ACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ACE, FrCommandAceClass)) 34 | #define FR_IS_COMMAND_ACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ACE)) 35 | #define FR_IS_COMMAND_ACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ACE)) 36 | #define FR_COMMAND_ACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ACE, FrCommandAceClass)) 37 | 38 | typedef enum { 39 | FR_ACE_COMMAND_UNKNOWN = 0, 40 | FR_ACE_COMMAND_PUBLIC, 41 | FR_ACE_COMMAND_NONFREE 42 | } FrAceCommand; 43 | 44 | typedef struct _FrCommandAce FrCommandAce; 45 | typedef struct _FrCommandAceClass FrCommandAceClass; 46 | 47 | struct _FrCommandAce 48 | { 49 | FrCommand __parent; 50 | 51 | gboolean list_started; 52 | FrAceCommand command_type; 53 | }; 54 | 55 | struct _FrCommandAceClass 56 | { 57 | FrCommandClass __parent_class; 58 | }; 59 | 60 | GType fr_command_ace_get_type (void); 61 | 62 | #endif /* FR_COMMAND_ACE_H */ 63 | -------------------------------------------------------------------------------- /src/fr-command-alz.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ALZ_H 24 | #define FR_COMMAND_ALZ_H 25 | 26 | #include 27 | #include "file-data.h" 28 | #include "fr-command.h" 29 | #include "fr-process.h" 30 | 31 | #define FR_TYPE_COMMAND_ALZ (fr_command_alz_get_type ()) 32 | #define FR_COMMAND_ALZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ALZ, FrCommandAlz)) 33 | #define FR_COMMAND_ALZ_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ALZ, FrCommandAlzClass)) 34 | #define FR_IS_COMMAND_ALZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ALZ)) 35 | #define FR_IS_COMMAND_ALZ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ALZ)) 36 | #define FR_COMMAND_ALZ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ALZ, FrCommandAlzClass)) 37 | 38 | typedef struct _FrCommandAlz FrCommandAlz; 39 | typedef struct _FrCommandAlzClass FrCommandAlzClass; 40 | 41 | struct _FrCommandAlz 42 | { 43 | FrCommand __parent; 44 | 45 | gboolean extract_none; 46 | gboolean invalid_password; 47 | gboolean list_started; 48 | }; 49 | 50 | struct _FrCommandAlzClass 51 | { 52 | FrCommandClass __parent_class; 53 | }; 54 | 55 | GType fr_command_alz_get_type (void); 56 | 57 | #endif /* FR_COMMAND_ALZ_H */ 58 | -------------------------------------------------------------------------------- /src/fr-command-ar.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_AR_H 24 | #define FR_COMMAND_AR_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_AR (fr_command_ar_get_type ()) 31 | #define FR_COMMAND_AR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_AR, FrCommandAr)) 32 | #define FR_COMMAND_AR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_AR, FrCommandArClass)) 33 | #define FR_IS_COMMAND_AR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_AR)) 34 | #define FR_IS_COMMAND_AR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_AR)) 35 | #define FR_COMMAND_AR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_AR, FrCommandArClass)) 36 | 37 | typedef struct _FrCommandAr FrCommandAr; 38 | typedef struct _FrCommandArClass FrCommandArClass; 39 | 40 | struct _FrCommandAr 41 | { 42 | FrCommand __parent; 43 | }; 44 | 45 | struct _FrCommandArClass 46 | { 47 | FrCommandClass __parent_class; 48 | }; 49 | 50 | GType fr_command_ar_get_type (void); 51 | 52 | #endif /* FR_COMMAND_AR_H */ 53 | -------------------------------------------------------------------------------- /src/fr-command-arj.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ARJ_H 24 | #define FR_COMMAND_ARJ_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_ARJ (fr_command_arj_get_type ()) 31 | #define FR_COMMAND_ARJ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ARJ, FrCommandArj)) 32 | #define FR_COMMAND_ARJ_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ARJ, FrCommandArjClass)) 33 | #define FR_IS_COMMAND_ARJ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ARJ)) 34 | #define FR_IS_COMMAND_ARJ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ARJ)) 35 | #define FR_COMMAND_ARJ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ARJ, FrCommandArjClass)) 36 | 37 | typedef struct _FrCommandArj FrCommandArj; 38 | typedef struct _FrCommandArjClass FrCommandArjClass; 39 | 40 | struct _FrCommandArj 41 | { 42 | FrCommand __parent; 43 | 44 | gboolean list_started; 45 | int line_no; 46 | FileData *fdata; 47 | GRegex *filename_line_regex; 48 | }; 49 | 50 | struct _FrCommandArjClass 51 | { 52 | FrCommandClass __parent_class; 53 | }; 54 | 55 | GType fr_command_arj_get_type (void); 56 | 57 | #endif /* FR_COMMAND_ARJ_H */ 58 | -------------------------------------------------------------------------------- /src/fr-command-cfile.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_CFILE_H 24 | #define FR_COMMAND_CFILE_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "typedefs.h" 29 | 30 | #define FR_TYPE_COMMAND_CFILE (fr_command_cfile_get_type ()) 31 | #define FR_COMMAND_CFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_CFILE, FrCommandCFile)) 32 | #define FR_COMMAND_CFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_CFILE, FrCommandCFileClass)) 33 | #define FR_IS_COMMAND_CFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_CFILE)) 34 | #define FR_IS_COMMAND_CFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_CFILE)) 35 | #define FR_COMMAND_CFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_CFILE, FrCommandCFileClass)) 36 | 37 | typedef struct _FrCommandCFile FrCommandCFile; 38 | typedef struct _FrCommandCFileClass FrCommandCFileClass; 39 | 40 | struct _FrCommandCFile 41 | { 42 | FrCommand __parent; 43 | 44 | /**/ 45 | 46 | FrProcError error; 47 | }; 48 | 49 | struct _FrCommandCFileClass 50 | { 51 | FrCommandClass __parent_class; 52 | }; 53 | 54 | GType fr_command_cfile_get_type (void); 55 | 56 | #endif /* FR_COMMAND_CFILE_H */ 57 | -------------------------------------------------------------------------------- /src/fr-command-cpio.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2006 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_CPIO_H 24 | #define FR_COMMAND_CPIO_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_CPIO (fr_command_cpio_get_type ()) 31 | #define FR_COMMAND_CPIO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_CPIO, FrCommandCpio)) 32 | #define FR_COMMAND_CPIO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_CPIO, FrCommandCpioClass)) 33 | #define FR_IS_COMMAND_CPIO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_CPIO)) 34 | #define FR_IS_COMMAND_CPIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_CPIO)) 35 | #define FR_COMMAND_CPIO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_CPIO, FrCommandCpioClass)) 36 | 37 | typedef struct _FrCommandCpio FrCommandCpio; 38 | typedef struct _FrCommandCpioClass FrCommandCpioClass; 39 | 40 | struct _FrCommandCpio 41 | { 42 | FrCommand __parent; 43 | gboolean is_empty; 44 | }; 45 | 46 | struct _FrCommandCpioClass 47 | { 48 | FrCommandClass __parent_class; 49 | }; 50 | 51 | GType fr_command_cpio_get_type (void); 52 | 53 | #endif /* FR_COMMAND_CPIO_H */ 54 | -------------------------------------------------------------------------------- /src/fr-command-dpkg.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_DPKG_H 24 | #define FR_COMMAND_DPKG_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_DPKG (fr_command_dpkg_get_type ()) 31 | #define FR_COMMAND_DPKG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_DPKG, FrCommandDpkg)) 32 | #define FR_COMMAND_DPKG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_DPKG, FrCommandDpkgClass)) 33 | #define FR_IS_COMMAND_DPKG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_DPKG)) 34 | #define FR_IS_COMMAND_DPKG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_DPKG)) 35 | #define FR_COMMAND_DPKG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_DPKG, FrCommandDpkgClass)) 36 | 37 | typedef struct _FrCommandDpkg FrCommandDpkg; 38 | typedef struct _FrCommandDpkgClass FrCommandDpkgClass; 39 | 40 | struct _FrCommandDpkg 41 | { 42 | FrCommand __parent; 43 | gboolean is_empty; 44 | }; 45 | 46 | struct _FrCommandDpkgClass 47 | { 48 | FrCommandClass __parent_class; 49 | }; 50 | 51 | GType fr_command_dpkg_get_type (void); 52 | 53 | #endif /* FR_COMMAND_DPKG_H */ 54 | -------------------------------------------------------------------------------- /src/fr-command-iso.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ISO_H 24 | #define FR_COMMAND_ISO_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_ISO (fr_command_iso_get_type ()) 31 | #define FR_COMMAND_ISO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ISO, FrCommandIso)) 32 | #define FR_COMMAND_ISO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ISO, FrCommandIsoClass)) 33 | #define FR_IS_COMMAND_ISO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ISO)) 34 | #define FR_IS_COMMAND_ISO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ISO)) 35 | #define FR_COMMAND_ISO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ISO, FrCommandIsoClass)) 36 | 37 | typedef struct _FrCommandIso FrCommandIso; 38 | typedef struct _FrCommandIsoClass FrCommandIsoClass; 39 | 40 | struct _FrCommandIso 41 | { 42 | FrCommand __parent; 43 | char *cur_path; 44 | gboolean joliet; 45 | }; 46 | 47 | struct _FrCommandIsoClass 48 | { 49 | FrCommandClass __parent_class; 50 | }; 51 | 52 | GType fr_command_iso_get_type (void); 53 | 54 | #endif /* FR_COMMAND_ISO_H */ 55 | -------------------------------------------------------------------------------- /src/fr-command-jar.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2006 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_JAR_H 24 | #define FR_COMMAND_JAR_H 25 | 26 | #include 27 | #include "fr-command-zip.h" 28 | 29 | #define FR_TYPE_COMMAND_JAR (fr_command_jar_get_type ()) 30 | #define FR_COMMAND_JAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_JAR, FrCommandJar)) 31 | #define FR_COMMAND_JAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_JAR, FrCommandJarClass)) 32 | #define FR_IS_COMMAND_JAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_JAR)) 33 | #define FR_IS_COMMAND_JAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_JAR)) 34 | #define FR_COMMAND_JAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_JAR, FrCommandJarClass)) 35 | 36 | typedef struct _FrCommandJar FrCommandJar; 37 | typedef struct _FrCommandJarClass FrCommandJarClass; 38 | 39 | struct _FrCommandJar 40 | { 41 | FrCommandZip __parent; 42 | }; 43 | 44 | struct _FrCommandJarClass 45 | { 46 | FrCommandZipClass __parent_class; 47 | }; 48 | 49 | GType fr_command_jar_get_type (void); 50 | 51 | #endif /* FR_COMMAND_JAR_H */ 52 | -------------------------------------------------------------------------------- /src/fr-command-lha.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_LHA_H 24 | #define FR_COMMAND_LHA_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_LHA (fr_command_lha_get_type ()) 31 | #define FR_COMMAND_LHA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_LHA, FrCommandLha)) 32 | #define FR_COMMAND_LHA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_LHA, FrCommandLhaClass)) 33 | #define FR_IS_COMMAND_LHA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_LHA)) 34 | #define FR_IS_COMMAND_LHA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_LHA)) 35 | #define FR_COMMAND_LHA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_LHA, FrCommandLhaClass)) 36 | 37 | typedef struct _FrCommandLha FrCommandLha; 38 | typedef struct _FrCommandLhaClass FrCommandLhaClass; 39 | 40 | struct _FrCommandLha 41 | { 42 | FrCommand __parent; 43 | }; 44 | 45 | struct _FrCommandLhaClass 46 | { 47 | FrCommandClass __parent_class; 48 | }; 49 | 50 | GType fr_command_lha_get_type (void); 51 | 52 | #endif /* FR_COMMAND_LHA_H */ 53 | -------------------------------------------------------------------------------- /src/fr-command-lrzip.h: -------------------------------------------------------------------------------- 1 | /* 2 | * fr-command-lrzip.h 3 | * 4 | * Created on: 10.04.2010 5 | * Author: Alexander Saprykin 6 | */ 7 | 8 | #ifndef FRCOMMANDLRZIP_H_ 9 | #define FRCOMMANDLRZIP_H_ 10 | 11 | #include 12 | #include "fr-command.h" 13 | #include "fr-process.h" 14 | 15 | #define FR_TYPE_COMMAND_LRZIP (fr_command_lrzip_get_type ()) 16 | #define FR_COMMAND_LRZIP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_LRZIP, FrCommandLrzip)) 17 | #define FR_COMMAND_LRZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_LRZIP, FrCommandLrzipClass)) 18 | #define FR_IS_COMMAND_LRZIP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_LRZIP)) 19 | #define FR_IS_COMMAND_LRZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_LRZIP)) 20 | #define FR_COMMAND_LRZIP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_LRZIP, FrCommandLrzipClass)) 21 | 22 | typedef struct _FrCommandLrzip FrCommandLrzip; 23 | typedef struct _FrCommandLrzipClass FrCommandLrzipClass; 24 | 25 | struct _FrCommandLrzip 26 | { 27 | FrCommand __parent; 28 | }; 29 | 30 | struct _FrCommandLrzipClass 31 | { 32 | FrCommandClass __parent_class; 33 | }; 34 | 35 | GType fr_command_lrzip_get_type (void); 36 | 37 | #endif /* FRCOMMANDLRZIP_H_ */ 38 | -------------------------------------------------------------------------------- /src/fr-command-nomarch.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_NOMARCH_H 24 | #define FR_COMMAND_NOMARCH_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_NOMARCH (fr_command_nomarch_get_type ()) 31 | #define FR_COMMAND_NOMARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_NOMARCH, FrCommandNomarch)) 32 | #define FR_COMMAND_NOMARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_NOMARCH, FrCommandNomarchClass)) 33 | #define FR_IS_COMMAND_NOMARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_NOMARCH)) 34 | #define FR_IS_COMMAND_NOMARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_NOMARCH)) 35 | #define FR_COMMAND_NOMARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_NOMARCH, FrCommandNomarchClass)) 36 | 37 | typedef struct _FrCommandNomarch FrCommandNomarch; 38 | typedef struct _FrCommandNomarchClass FrCommandNomarchClass; 39 | 40 | struct _FrCommandNomarch 41 | { 42 | FrCommand __parent; 43 | 44 | FileData *fdata; 45 | }; 46 | 47 | struct _FrCommandNomarchClass 48 | { 49 | FrCommandClass __parent_class; 50 | }; 51 | 52 | GType fr_command_nomarch_get_type (void); 53 | 54 | #endif /* FR_COMMAND_NOMARCH_H */ 55 | -------------------------------------------------------------------------------- /src/fr-command-rar.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_RAR_H 24 | #define FR_COMMAND_RAR_H 25 | 26 | #include 27 | #include "file-data.h" 28 | #include "fr-command.h" 29 | #include "fr-process.h" 30 | 31 | #define FR_TYPE_COMMAND_RAR (fr_command_rar_get_type ()) 32 | #define FR_COMMAND_RAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_RAR, FrCommandRar)) 33 | #define FR_COMMAND_RAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_RAR, FrCommandRarClass)) 34 | #define FR_IS_COMMAND_RAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_RAR)) 35 | #define FR_IS_COMMAND_RAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_RAR)) 36 | #define FR_COMMAND_RAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_RAR, FrCommandRarClass)) 37 | 38 | typedef struct _FrCommandRar FrCommandRar; 39 | typedef struct _FrCommandRarClass FrCommandRarClass; 40 | 41 | typedef enum 42 | { 43 | FR_COMMAND_RAR_TYPE_RAR4 = 1<<0, 44 | FR_COMMAND_RAR_TYPE_RAR5 = 1<<1, 45 | FR_COMMAND_RAR_TYPE_UNRAR_FREE = 1<<2, 46 | /* RAR5 + empty CRC for directories */ 47 | FR_COMMAND_RAR_TYPE_RAR7 = (1<<3) | FR_COMMAND_RAR_TYPE_RAR5, 48 | } FrCommandRarType; 49 | 50 | struct _FrCommandRar 51 | { 52 | FrCommand __parent; 53 | 54 | gboolean list_started; 55 | gboolean rar4_odd_line; 56 | FrCommandRarType output_type; 57 | FileData *fdata; 58 | }; 59 | 60 | struct _FrCommandRarClass 61 | { 62 | FrCommandClass __parent_class; 63 | }; 64 | 65 | GType fr_command_rar_get_type (void); 66 | 67 | #endif /* FR_COMMAND_RAR_H */ 68 | -------------------------------------------------------------------------------- /src/fr-command-rpm.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_RPM_H 24 | #define FR_COMMAND_RPM_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_RPM (fr_command_rpm_get_type ()) 31 | #define FR_COMMAND_RPM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_RPM, FrCommandRpm)) 32 | #define FR_COMMAND_RPM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_RPM, FrCommandRpmClass)) 33 | #define FR_IS_COMMAND_RPM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_RPM)) 34 | #define FR_IS_COMMAND_RPM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_RPM)) 35 | #define FR_COMMAND_RPM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_RPM, FrCommandRpmClass)) 36 | 37 | typedef struct _FrCommandRpm FrCommandRpm; 38 | typedef struct _FrCommandRpmClass FrCommandRpmClass; 39 | 40 | struct _FrCommandRpm 41 | { 42 | FrCommand __parent; 43 | gboolean is_empty; 44 | }; 45 | 46 | struct _FrCommandRpmClass 47 | { 48 | FrCommandClass __parent_class; 49 | }; 50 | 51 | GType fr_command_rpm_get_type (void); 52 | 53 | #endif /* FR_COMMAND_RPM_H */ 54 | -------------------------------------------------------------------------------- /src/fr-command-tar.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_TAR_H 24 | #define FR_COMMAND_TAR_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | #include "typedefs.h" 30 | 31 | #define FR_TYPE_COMMAND_TAR (fr_command_tar_get_type ()) 32 | #define FR_COMMAND_TAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_TAR, FrCommandTar)) 33 | #define FR_COMMAND_TAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_TAR, FrCommandTarClass)) 34 | #define FR_IS_COMMAND_TAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_TAR)) 35 | #define FR_IS_COMMAND_TAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_TAR)) 36 | #define FR_COMMAND_TAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_TAR, FrCommandTarClass)) 37 | 38 | typedef struct _FrCommandTar FrCommandTar; 39 | typedef struct _FrCommandTarClass FrCommandTarClass; 40 | 41 | struct _FrCommandTar 42 | { 43 | FrCommand __parent; 44 | 45 | /**/ 46 | 47 | char *uncomp_filename; 48 | gboolean name_modified; 49 | char *compress_command; 50 | 51 | char *msg; 52 | }; 53 | 54 | struct _FrCommandTarClass 55 | { 56 | FrCommandClass __parent_class; 57 | }; 58 | 59 | GType fr_command_tar_get_type (void); 60 | 61 | #endif /* FR_COMMAND_TAR_H */ 62 | -------------------------------------------------------------------------------- /src/fr-command-unarchiver.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * File-Roller 5 | * 6 | * Copyright (C) 2012 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #ifndef FR_COMMAND_UNARCHIVER_H 23 | #define FR_COMMAND_UNARCHIVER_H 24 | 25 | #include 26 | #include "file-data.h" 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_UNARCHIVER (fr_command_unarchiver_get_type ()) 31 | #define FR_COMMAND_UNARCHIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_UNARCHIVER, FrCommandUnarchiver)) 32 | #define FR_COMMAND_UNARCHIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_UNARCHIVER, FrCommandUnarchiverClass)) 33 | #define FR_IS_COMMAND_UNARCHIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_UNARCHIVER)) 34 | #define FR_IS_COMMAND_UNARCHIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_UNARCHIVER)) 35 | #define FR_COMMAND_UNARCHIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_UNARCHIVER, FrCommandUnarchiverClass)) 36 | 37 | typedef struct _FrCommandUnarchiver FrCommandUnarchiver; 38 | typedef struct _FrCommandUnarchiverClass FrCommandUnarchiverClass; 39 | 40 | struct _FrCommandUnarchiver 41 | { 42 | FrCommand __parent; 43 | 44 | GInputStream *stream; 45 | int n_line; 46 | }; 47 | 48 | struct _FrCommandUnarchiverClass 49 | { 50 | FrCommandClass __parent_class; 51 | }; 52 | 53 | GType fr_command_unarchiver_get_type (void); 54 | 55 | #endif /* FR_COMMAND_UNARCHIVER_H */ 56 | -------------------------------------------------------------------------------- /src/fr-command-unstuff.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_UNSTUFF_H 24 | #define FR_COMMAND_UNSTUFF_H 25 | 26 | #include 27 | #include "file-data.h" 28 | #include "fr-command.h" 29 | #include "fr-process.h" 30 | 31 | #define FR_TYPE_COMMAND_UNSTUFF (fr_command_unstuff_get_type ()) 32 | #define FR_COMMAND_UNSTUFF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_UNSTUFF, FrCommandUnstuff)) 33 | #define FR_COMMAND_UNSTUFF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_UNSTUFF, FrCommandUnstuffClass)) 34 | #define FR_IS_COMMAND_UNSTUFF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_UNSTUFF)) 35 | #define FR_IS_COMMAND_UNSTUFF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_UNSTUFF)) 36 | #define FR_COMMAND_UNSTUFF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_UNSTUFF, FrCommandUnstuffClass)) 37 | 38 | typedef struct _FrCommandUnstuff FrCommandUnstuff; 39 | typedef struct _FrCommandUnstuffClass FrCommandUnstuffClass; 40 | 41 | struct _FrCommandUnstuff 42 | { 43 | FrCommand __parent; 44 | 45 | char *target_dir; 46 | FileData *fdata; 47 | }; 48 | 49 | struct _FrCommandUnstuffClass 50 | { 51 | FrCommandClass __parent_class; 52 | }; 53 | 54 | GType fr_command_unstuff_get_type (void); 55 | 56 | #endif /* FR_COMMAND_UNSTUFF_H */ 57 | -------------------------------------------------------------------------------- /src/fr-command-zip.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ZIP_H 24 | #define FR_COMMAND_ZIP_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | 30 | #define FR_TYPE_COMMAND_ZIP (fr_command_zip_get_type ()) 31 | #define FR_COMMAND_ZIP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ZIP, FrCommandZip)) 32 | #define FR_COMMAND_ZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ZIP, FrCommandZipClass)) 33 | #define FR_IS_COMMAND_ZIP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ZIP)) 34 | #define FR_IS_COMMAND_ZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ZIP)) 35 | #define FR_COMMAND_ZIP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ZIP, FrCommandZipClass)) 36 | 37 | typedef struct _FrCommandZip FrCommandZip; 38 | typedef struct _FrCommandZipClass FrCommandZipClass; 39 | 40 | struct _FrCommandZip 41 | { 42 | FrCommand __parent; 43 | gboolean is_empty; 44 | }; 45 | 46 | struct _FrCommandZipClass 47 | { 48 | FrCommandClass __parent_class; 49 | }; 50 | 51 | GType fr_command_zip_get_type (void); 52 | 53 | #endif /* FR_COMMAND_ZIP_H */ 54 | -------------------------------------------------------------------------------- /src/fr-command-zoo.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2003 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_COMMAND_ZOO_H 24 | #define FR_COMMAND_ZOO_H 25 | 26 | #include 27 | #include "fr-command.h" 28 | #include "fr-process.h" 29 | #include "typedefs.h" 30 | 31 | #define FR_TYPE_COMMAND_ZOO (fr_command_zoo_get_type ()) 32 | #define FR_COMMAND_ZOO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ZOO, FrCommandZoo)) 33 | #define FR_COMMAND_ZOO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ZOO, FrCommandZooClass)) 34 | #define FR_IS_COMMAND_ZOO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ZOO)) 35 | #define FR_IS_COMMAND_ZOO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ZOO)) 36 | #define FR_COMMAND_ZOO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ZOO, FrCommandZooClass)) 37 | 38 | typedef struct _FrCommandZoo FrCommandZoo; 39 | typedef struct _FrCommandZooClass FrCommandZooClass; 40 | 41 | struct _FrCommandZoo 42 | { 43 | FrCommand __parent; 44 | }; 45 | 46 | struct _FrCommandZooClass 47 | { 48 | FrCommandClass __parent_class; 49 | }; 50 | 51 | GType fr_command_zoo_get_type (void); 52 | 53 | #endif /* FR_COMMAND_ZOO_H */ 54 | -------------------------------------------------------------------------------- /src/fr-error.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include "fr-error.h" 24 | 25 | GQuark 26 | fr_error_quark (void) 27 | { 28 | static GQuark quark; 29 | 30 | if (!quark) 31 | quark = g_quark_from_static_string ("engrampa-error"); 32 | 33 | return quark; 34 | } 35 | -------------------------------------------------------------------------------- /src/fr-error.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef __FR_ERROR_H__ 24 | #define __FR_ERROR_H__ 25 | 26 | #include 27 | 28 | #define FR_ERROR fr_error_quark () 29 | GQuark fr_error_quark (void); 30 | 31 | #endif /* __FR_ERROR_H__ */ 32 | -------------------------------------------------------------------------------- /src/fr-init.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2010 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #ifndef FR_INIT_H 23 | #define FR_INIT_H 24 | 25 | #include "preferences.h" 26 | #include "fr-process.h" 27 | #include "fr-window.h" 28 | 29 | typedef struct { 30 | FrWindow *window; 31 | FrProcess *process; 32 | char *filename; 33 | char *e_filename; 34 | char *temp_dir; 35 | } ViewerData; 36 | 37 | typedef struct { 38 | FrWindow *window; 39 | FrProcess *process; 40 | char *command; 41 | GAppInfo *app; 42 | GList *file_list; 43 | char *temp_dir; 44 | } CommandData; 45 | 46 | extern GList *CommandList; 47 | extern gint ForceDirectoryCreation; 48 | extern GHashTable *ProgramsCache; 49 | extern GPtrArray *Registered_Commands; 50 | extern FrMimeTypeDescription mime_type_desc[]; 51 | extern FrExtensionType file_ext_type[]; 52 | extern int single_file_save_type[]; /* File types that can be saved when 53 | * a single file is selected. 54 | * Includes single file compressors 55 | * such as gzip, compress, etc. */ 56 | extern int save_type[]; /* File types that can be saved. */ 57 | extern int open_type[]; /* File types that can be opened. */ 58 | extern int create_type[]; /* File types that can be created. */ 59 | 60 | GType get_command_type_from_mime_type (const char *mime_type, 61 | FrCommandCaps requested_capabilities); 62 | GType get_preferred_command_for_mime_type (const char *mime_type, 63 | FrCommandCaps requested_capabilities); 64 | void update_registered_commands_capabilities (void); 65 | const char * get_mime_type_from_extension (const char *ext); 66 | const char * get_archive_filename_extension (const char *uri); 67 | int get_mime_type_index (const char *mime_type); 68 | void sort_mime_types_by_extension (int *a); 69 | void sort_mime_types_by_description (int *a); 70 | void initialize_data (void); 71 | void release_data (void); 72 | 73 | #endif /* FR_INIT_H */ 74 | -------------------------------------------------------------------------------- /src/fr-list-model.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2005 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include "eggtreemultidnd.h" 25 | #include "fr-list-model.h" 26 | #include "fr-window.h" 27 | 28 | static GtkListStoreClass *parent_class; 29 | 30 | static gboolean 31 | fr_list_model_multi_row_draggable (EggTreeMultiDragSource *drag_source, 32 | GList *path_list) 33 | { 34 | FrWindow *window; 35 | GtkTreeModel *model; 36 | GList *scan; 37 | 38 | window = g_object_get_data (G_OBJECT (drag_source), "FrWindow"); 39 | g_return_val_if_fail (window != NULL, FALSE); 40 | 41 | model = fr_window_get_list_store (window); 42 | 43 | for (scan = path_list; scan; scan = scan->next) { 44 | GtkTreeRowReference *reference = scan->data; 45 | GtkTreePath *path; 46 | GtkTreeIter iter; 47 | FileData *fdata; 48 | 49 | path = gtk_tree_row_reference_get_path (reference); 50 | if (path == NULL) 51 | continue; 52 | 53 | if (! gtk_tree_model_get_iter (model, &iter, path)) 54 | continue; 55 | 56 | gtk_tree_model_get (model, &iter, 57 | COLUMN_FILE_DATA, &fdata, 58 | -1); 59 | 60 | if (fdata != NULL) 61 | return TRUE; 62 | } 63 | 64 | return FALSE; 65 | } 66 | 67 | static gboolean 68 | fr_list_model_multi_drag_data_get (EggTreeMultiDragSource *drag_source, 69 | GdkDragContext *context, 70 | GtkSelectionData *selection_data, 71 | GList *path_list) 72 | { 73 | FrWindow *window; 74 | 75 | window = g_object_get_data (G_OBJECT (drag_source), "FrWindow"); 76 | g_return_val_if_fail (window != NULL, FALSE); 77 | 78 | return fr_window_file_list_drag_data_get (window, 79 | context, 80 | selection_data, 81 | path_list); 82 | } 83 | 84 | static gboolean 85 | fr_list_model_multi_drag_data_delete (EggTreeMultiDragSource *drag_source, 86 | GList *path_list) 87 | { 88 | return TRUE; 89 | } 90 | 91 | static void 92 | fr_list_model_finalize (GObject *object) 93 | { 94 | if (G_OBJECT_CLASS (parent_class)->finalize) 95 | G_OBJECT_CLASS (parent_class)->finalize (object); 96 | } 97 | 98 | static void 99 | fr_list_model_init (FRListModel *model) 100 | { 101 | } 102 | 103 | static void 104 | fr_list_model_class_init (FRListModelClass *klass) 105 | { 106 | GObjectClass *object_class; 107 | 108 | object_class = (GObjectClass *)klass; 109 | parent_class = g_type_class_peek_parent (klass); 110 | 111 | object_class->finalize = fr_list_model_finalize; 112 | } 113 | 114 | static void 115 | fr_list_model_multi_drag_source_init (EggTreeMultiDragSourceIface *iface) 116 | { 117 | iface->row_draggable = fr_list_model_multi_row_draggable; 118 | iface->drag_data_get = fr_list_model_multi_drag_data_get; 119 | iface->drag_data_delete = fr_list_model_multi_drag_data_delete; 120 | } 121 | 122 | GType 123 | fr_list_model_get_type (void) 124 | { 125 | static GType object_type = 0; 126 | 127 | if (object_type == 0) { 128 | static const GTypeInfo object_info = { 129 | sizeof (FRListModelClass), 130 | NULL, /* base_init */ 131 | NULL, /* base_finalize */ 132 | (GClassInitFunc) fr_list_model_class_init, 133 | NULL, /* class_finalize */ 134 | NULL, /* class_data */ 135 | sizeof (FRListModel), 136 | 0, 137 | (GInstanceInitFunc) fr_list_model_init, 138 | NULL 139 | }; 140 | 141 | static const GInterfaceInfo multi_drag_source_info = { 142 | (GInterfaceInitFunc) fr_list_model_multi_drag_source_init, 143 | NULL, 144 | NULL 145 | }; 146 | 147 | object_type = g_type_register_static (GTK_TYPE_LIST_STORE, "FRListModel", &object_info, 0); 148 | g_type_add_interface_static (object_type, 149 | EGG_TYPE_TREE_MULTI_DRAG_SOURCE, 150 | &multi_drag_source_info); 151 | } 152 | 153 | return object_type; 154 | } 155 | 156 | GtkListStore * 157 | fr_list_model_new (int n_columns, ...) 158 | { 159 | GtkListStore *retval; 160 | GType *types; 161 | va_list args; 162 | int i; 163 | 164 | g_return_val_if_fail (n_columns > 0, NULL); 165 | 166 | retval = g_object_new (FR_TYPE_LIST_MODEL, NULL); 167 | 168 | va_start (args, n_columns); 169 | types = g_new0 (GType, n_columns); 170 | for (i = 0; i < n_columns; i++) 171 | types[i] = va_arg (args, GType); 172 | va_end (args); 173 | 174 | gtk_list_store_set_column_types (retval, n_columns, types); 175 | g_free (types); 176 | 177 | return retval; 178 | } 179 | -------------------------------------------------------------------------------- /src/fr-list-model.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2005 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef FR_LIST_MODEL_H 24 | #define FR_LIST_MODEL_H 25 | 26 | #include 27 | 28 | #define FR_TYPE_LIST_MODEL (fr_list_model_get_type ()) 29 | #define FR_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_LIST_MODEL, FRListModel)) 30 | #define FR_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_LIST_MODEL, FRListModelClass)) 31 | #define FR_IS_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_LIST_MODEL)) 32 | #define FR_IS_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_LIST_MODEL)) 33 | #define FR_LIST_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_LIST_MODEL, FRListModelClass)) 34 | 35 | typedef struct FRListModel { 36 | GtkListStore __parent; 37 | } FRListModel; 38 | 39 | typedef struct FRListModelClass { 40 | GtkListStoreClass __parent_class; 41 | } FRListModelClass; 42 | 43 | GType fr_list_model_get_type (void); 44 | GtkListStore *fr_list_model_new (int n_columns, ...); 45 | 46 | #endif /* FR_LIST_MODEL_H */ 47 | -------------------------------------------------------------------------------- /src/fr-marshal.list: -------------------------------------------------------------------------------- 1 | VOID:INT 2 | VOID:INT,INT 3 | VOID:INT,BOXED 4 | VOID:POINTER 5 | VOID:VOID 6 | VOID:DOUBLE 7 | VOID:DOUBLE,STRING 8 | VOID:STRING 9 | VOID:BOOLEAN 10 | VOID:BOXED 11 | -------------------------------------------------------------------------------- /src/fr-proc-error.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * File-Roller 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #include 23 | #include "fr-proc-error.h" 24 | 25 | static gpointer 26 | fr_proc_error_copy (gpointer boxed) 27 | { 28 | FrProcError *old_error = boxed; 29 | FrProcError *new_error; 30 | 31 | new_error = g_new (FrProcError, 1); 32 | new_error->type = old_error->type; 33 | new_error->status = old_error->status; 34 | new_error->gerror = (old_error->gerror != NULL) ? g_error_copy (old_error->gerror) : NULL; 35 | 36 | return new_error; 37 | } 38 | 39 | static void 40 | fr_proc_error_free (gpointer boxed) 41 | { 42 | FrProcError *error = boxed; 43 | 44 | if (error->gerror != NULL) 45 | g_error_free (error->gerror); 46 | g_free (error); 47 | } 48 | 49 | G_DEFINE_BOXED_TYPE (FrProcError, 50 | fr_proc_error, 51 | fr_proc_error_copy, 52 | fr_proc_error_free) 53 | -------------------------------------------------------------------------------- /src/fr-proc-error.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * File-Roller 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #ifndef FR_PROC_ERROR_H 23 | #define FR_PROC_ERROR_H 24 | 25 | #include "typedefs.h" 26 | 27 | #define FR_TYPE_PROC_ERROR (fr_proc_error_get_type ()) 28 | 29 | GType fr_proc_error_get_type (void); 30 | 31 | #endif /* FR_PROC_ERROR_H */ 32 | -------------------------------------------------------------------------------- /src/glib-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2005 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef _GLIB_UTILS_H 24 | #define _GLIB_UTILS_H 25 | 26 | #include 27 | 28 | #define g_signal_handlers_disconnect_by_data(instance, data) \ 29 | g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_DATA, \ 30 | 0, 0, NULL, NULL, (data)) 31 | 32 | /* gobject utils */ 33 | 34 | void _g_object_unref (gpointer object); 35 | 36 | /* string utils */ 37 | 38 | gboolean strchrs (const char *str, 39 | const char *chars); 40 | char * str_substitute (const char *str, 41 | const char *from_str, 42 | const char *to_str); 43 | char* escape_str (const char *str, 44 | const char *meta_chars); 45 | gboolean match_regexps (GRegex **regexps, 46 | const char *string, 47 | GRegexMatchFlags match_options); 48 | char ** search_util_get_patterns (const char *pattern_string); 49 | GRegex ** search_util_get_regexps (const char *pattern_string, 50 | GRegexCompileFlags compile_options); 51 | void free_regexps (GRegex **regexps); 52 | const char * eat_spaces (const char *line); 53 | char ** split_line (const char *line, 54 | int n_fields); 55 | const char * get_last_field (const char *line, 56 | int last_field); 57 | const char * get_static_string (const char *s); 58 | char* g_uri_display_basename (const char *uri); 59 | 60 | /* path filename */ 61 | 62 | const char * _g_path_get_file_name (const char *path); 63 | const char * _g_path_get_base_name (const char *path, 64 | const char *base_dir, 65 | gboolean junk_paths); 66 | 67 | /**/ 68 | 69 | #ifndef __GNUC__ 70 | #define __FUNCTION__ "" 71 | #endif 72 | 73 | #define DEBUG_INFO __FILE__, __LINE__, __FUNCTION__ 74 | 75 | void debug (const char *file, 76 | int line, 77 | const char *function, 78 | const char *format, ...); 79 | 80 | #endif /* _GLIB_UTILS_H */ 81 | -------------------------------------------------------------------------------- /src/gtk-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef GTK_UTILS_H 24 | #define GTK_UTILS_H 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | GtkWidget* _gtk_message_dialog_new (GtkWindow *parent, 31 | GtkDialogFlags flags, 32 | const char *icon_name, 33 | const char *message, 34 | const char *secondary_message, 35 | const char *first_button_text, 36 | ...); 37 | gchar* _gtk_request_dialog_run (GtkWindow *parent, 38 | GtkDialogFlags flags, 39 | const char *title, 40 | const char *message, 41 | const char *default_value, 42 | int max_length, 43 | const char *no_button_text, 44 | const char *yes_button_text); 45 | GtkWidget* _gtk_error_dialog_new (GtkWindow *parent, 46 | GtkDialogFlags flags, 47 | GList *row_output, 48 | const char *primary_text, 49 | const char *secondary_text, 50 | ...) G_GNUC_PRINTF (5, 6); 51 | void _gtk_error_dialog_run (GtkWindow *parent, 52 | const gchar *main_message, 53 | const gchar *format, 54 | ...); 55 | void _gtk_entry_set_locale_text (GtkEntry *entry, 56 | const char *text); 57 | char * _gtk_entry_get_locale_text (GtkEntry *entry); 58 | void _gtk_entry_set_filename_text (GtkEntry *entry, 59 | const char *text); 60 | GdkPixbuf * get_icon_pixbuf (GIcon *icon, 61 | int size, 62 | GtkIconTheme *icon_theme); 63 | GdkPixbuf * get_mime_type_pixbuf (const char *mime_type, 64 | int icon_size, 65 | GtkIconTheme *icon_theme); 66 | void show_help_dialog (GtkWindow *parent, 67 | const char *section); 68 | 69 | int _gtk_widget_lookup_for_size (GtkWidget *widget, 70 | GtkIconSize icon_size); 71 | #endif 72 | -------------------------------------------------------------------------------- /src/java-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2006 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef JAVA_UTILS_H 24 | #define JAVA_UTILS_H 25 | 26 | char* get_package_name_from_class_file (char *fname); 27 | char* get_package_name_from_java_file (char *fname); 28 | 29 | #endif /* JAVA_UTILS_H */ 30 | -------------------------------------------------------------------------------- /src/meson.build: -------------------------------------------------------------------------------- 1 | # Sources 2 | 3 | source_files = files( 4 | 'actions.c', 5 | 'dlg-add-files.c', 6 | 'dlg-add-folder.c', 7 | 'dlg-ask-password.c', 8 | 'dlg-batch-add.c', 9 | 'dlg-delete.c', 10 | 'dlg-extract.c', 11 | 'dlg-new.c', 12 | 'dlg-open-with.c', 13 | 'dlg-package-installer.c', 14 | 'dlg-password.c', 15 | 'dlg-prop.c', 16 | 'dlg-update.c', 17 | 'eggfileformatchooser.c', 18 | 'eggtreemultidnd.c', 19 | 'file-data.c', 20 | 'file-utils.c', 21 | 'fr-archive.c', 22 | 'fr-command-7z.c', 23 | 'fr-command-ace.c', 24 | 'fr-command-alz.c', 25 | 'fr-command-ar.c', 26 | 'fr-command-arj.c', 27 | 'fr-command.c', 28 | 'fr-command-cfile.c', 29 | 'fr-command-cpio.c', 30 | 'fr-command-dpkg.c', 31 | 'fr-command-iso.c', 32 | 'fr-command-jar.c', 33 | 'fr-command-lha.c', 34 | 'fr-command-lrzip.c', 35 | 'fr-command-nomarch.c', 36 | 'fr-command-rar.c', 37 | 'fr-command-rpm.c', 38 | 'fr-command-tar.c', 39 | 'fr-command-unstuff.c', 40 | 'fr-command-zip.c', 41 | 'fr-command-zoo.c', 42 | 'fr-error.c', 43 | 'fr-init.c', 44 | 'fr-list-model.c', 45 | 'fr-proc-error.c', 46 | 'fr-process.c', 47 | 'fr-window.c', 48 | 'gio-utils.c', 49 | 'glib-utils.c', 50 | 'gtk-utils.c', 51 | 'java-utils.c', 52 | 'main.c', 53 | 'open-file.c', 54 | 'preferences.c', 55 | 'rar-utils.c' 56 | ) 57 | if libjson_glib_dep.found() 58 | source_files += [ 'fr-command-unarchiver.c' ] 59 | endif 60 | 61 | gresource_files = gnome.compile_resources('fr-resources', 'engrampa.gresource.xml', c_name : 'fr') 62 | 63 | marshal_files = gnome.genmarshal('fr-marshal', prefix : 'fr_marshal', sources : 'fr-marshal.list' ) 64 | 65 | enum_files = gnome.mkenums_simple('fr-enum-types', 66 | sources: [ 'typedefs.h' ] 67 | ) 68 | 69 | # Build targets 70 | 71 | executable('engrampa', 72 | sources : [ 73 | config_file, 74 | source_files, 75 | gresource_files, 76 | marshal_files, 77 | enum_files 78 | ], 79 | dependencies : [ 80 | libm_dep, 81 | thread_dep, 82 | glib_dep, 83 | gthread_dep, 84 | gtk_dep, 85 | mate_submodules_dep, 86 | use_json_glib ? libjson_glib_dep : [], 87 | use_magic ? libmagic_dep : [] 88 | ], 89 | include_directories : config_inc, 90 | c_args : c_args, 91 | install : true 92 | ) 93 | 94 | executable('test-server', 'test-server.c', 95 | dependencies : [ 96 | libm_dep, 97 | thread_dep, 98 | glib_dep, 99 | gthread_dep, 100 | gtk_dep, 101 | use_json_glib ? libjson_glib_dep : [] 102 | ], 103 | include_directories : config_inc, 104 | c_args : c_args, 105 | install : true, 106 | install_dir: privexecdir, 107 | ) 108 | 109 | # Subdirectories 110 | 111 | subdir('sh') 112 | -------------------------------------------------------------------------------- /src/open-file.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001-2008 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include "open-file.h" 25 | #include "file-utils.h" 26 | 27 | OpenFile* 28 | open_file_new (const char *path, 29 | const char *extracted_path, 30 | const char *temp_dir) 31 | { 32 | OpenFile *ofile; 33 | 34 | ofile = g_new0 (OpenFile, 1); 35 | ofile->path = g_strdup (path); 36 | ofile->extracted_uri = g_filename_to_uri (extracted_path, NULL, NULL); 37 | if (! uri_exists (ofile->extracted_uri)) { 38 | open_file_free (ofile); 39 | return NULL; 40 | } 41 | ofile->temp_dir = g_strdup (temp_dir); 42 | ofile->last_modified = get_file_mtime (ofile->extracted_uri); 43 | 44 | return ofile; 45 | } 46 | 47 | void 48 | open_file_free (OpenFile *ofile) 49 | { 50 | if (ofile == NULL) 51 | return; 52 | if (ofile->monitor != NULL) 53 | g_object_unref (ofile->monitor); 54 | g_free (ofile->path); 55 | g_free (ofile->extracted_uri); 56 | g_free (ofile->temp_dir); 57 | g_free (ofile); 58 | } 59 | 60 | OpenFile * 61 | open_file_copy (OpenFile *src) 62 | { 63 | OpenFile *ofile; 64 | 65 | ofile = g_new0 (OpenFile, 1); 66 | ofile->path = g_strdup (src->path); 67 | ofile->extracted_uri = g_strdup (src->extracted_uri); 68 | ofile->temp_dir = g_strdup (src->temp_dir); 69 | ofile->last_modified = src->last_modified; 70 | 71 | return ofile; 72 | } 73 | 74 | GType 75 | open_file_get_type (void) 76 | { 77 | static GType type = 0; 78 | 79 | if (type == 0) 80 | type = g_boxed_type_register_static ("FROpenFile", (GBoxedCopyFunc) open_file_copy, (GBoxedFreeFunc) open_file_free); 81 | 82 | return type; 83 | } 84 | -------------------------------------------------------------------------------- /src/open-file.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001-2008 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef OPEN_FILE_H 24 | #define OPEN_FILE_H 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | typedef struct { 32 | char *path; 33 | char *extracted_uri; 34 | char *temp_dir; 35 | time_t last_modified; 36 | GFileMonitor *monitor; 37 | } OpenFile; 38 | 39 | #define FR_TYPE_OPEN_FILE (open_file_get_type ()) 40 | 41 | GType open_file_get_type (void); 42 | OpenFile * open_file_new (const char *path, 43 | const char *extracted_path, 44 | const char *temp_dir); 45 | OpenFile * open_file_copy (OpenFile *src); 46 | void open_file_free (OpenFile *ofile); 47 | 48 | #endif /* OPEN_FILE_H */ 49 | -------------------------------------------------------------------------------- /src/preferences.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #include 24 | #include "typedefs.h" 25 | #include "preferences.h" 26 | #include "fr-init.h" 27 | #include "file-utils.h" 28 | #include "fr-window.h" 29 | 30 | void 31 | pref_util_save_window_geometry (GtkWindow *window, 32 | const char *dialog_id) 33 | { 34 | char *schema; 35 | GSettings *settings; 36 | int width; 37 | int height; 38 | 39 | schema = g_strconcat (ENGRAMPA_SCHEMA_DIALOGS, ".", dialog_id, NULL); 40 | settings = g_settings_new (schema); 41 | 42 | gtk_window_get_size (window, &width, &height); 43 | g_settings_set_int (settings, "width", width); 44 | g_settings_set_int (settings, "height", height); 45 | g_object_unref (settings); 46 | g_free (schema); 47 | } 48 | 49 | void 50 | pref_util_restore_window_geometry (GtkWindow *window, 51 | const char *dialog_id) 52 | { 53 | char *schema; 54 | GSettings *settings; 55 | int width; 56 | int height; 57 | 58 | schema = g_strconcat (ENGRAMPA_SCHEMA_DIALOGS, ".", dialog_id, NULL); 59 | settings = g_settings_new (schema); 60 | 61 | width = g_settings_get_int (settings, "width"); 62 | height = g_settings_get_int (settings, "height"); 63 | if ((width != -1) && (height != 1)) 64 | gtk_window_set_default_size (window, width, height); 65 | 66 | gtk_window_present (window); 67 | 68 | g_object_unref (settings); 69 | g_free (schema); 70 | } 71 | -------------------------------------------------------------------------------- /src/preferences.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001, 2003 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef PREFERENCES_H 24 | #define PREFERENCES_H 25 | 26 | #include 27 | #include "typedefs.h" 28 | #include "fr-window.h" 29 | 30 | #define ENGRAMPA_SCHEMA "org.mate.engrampa" 31 | #define ENGRAMPA_SCHEMA_LISTING ENGRAMPA_SCHEMA ".listing" 32 | #define ENGRAMPA_SCHEMA_UI ENGRAMPA_SCHEMA ".ui" 33 | #define ENGRAMPA_SCHEMA_GENERAL ENGRAMPA_SCHEMA ".general" 34 | #define ENGRAMPA_SCHEMA_DIALOGS ENGRAMPA_SCHEMA ".dialogs" 35 | #define ENGRAMPA_SCHEMA_ADD ENGRAMPA_SCHEMA_DIALOGS ".add" 36 | #define ENGRAMPA_SCHEMA_BATCH_ADD ENGRAMPA_SCHEMA_DIALOGS ".batch-add" 37 | #define ENGRAMPA_SCHEMA_EXTRACT ENGRAMPA_SCHEMA_DIALOGS ".extract" 38 | #define ENGRAMPA_SCHEMA_LAST_OUTPUT ENGRAMPA_SCHEMA_DIALOGS ".last-output" 39 | 40 | #define PREF_LISTING_SORT_METHOD "sort-method" 41 | #define PREF_LISTING_SORT_TYPE "sort-type" 42 | #define PREF_LISTING_LIST_MODE "list-mode" 43 | #define PREF_LISTING_SHOW_TYPE "show-type" 44 | #define PREF_LISTING_SHOW_SIZE "show-size" 45 | #define PREF_LISTING_SHOW_TIME "show-time" 46 | #define PREF_LISTING_SHOW_PATH "show-path" 47 | #define PREF_LISTING_USE_MIME_ICONS "use-mime-icons" 48 | #define PREF_LISTING_NAME_COLUMN_WIDTH "name-column-width" 49 | 50 | #define PREF_UI_WINDOW_WIDTH "window-width" 51 | #define PREF_UI_WINDOW_HEIGHT "window-height" 52 | #define PREF_UI_SIDEBAR_WIDTH "sidebar-width" 53 | #define PREF_UI_HISTORY_LEN "history-len" 54 | #define PREF_UI_VIEW_TOOLBAR "view-toolbar" 55 | #define PREF_UI_VIEW_STATUSBAR "view-statusbar" 56 | #define PREF_UI_VIEW_FOLDERS "view-folders" 57 | 58 | #define PREF_GENERAL_EDITORS "editors" 59 | #define PREF_GENERAL_COMPRESSION_LEVEL "compression-level" 60 | #define PREF_GENERAL_ENCRYPT_HEADER "encrypt-header" 61 | 62 | #define PREF_EXTRACT_OVERWRITE "overwrite" 63 | #define PREF_EXTRACT_SKIP_NEWER "skip-newer" 64 | #define PREF_EXTRACT_CLOSE_DIALOG "close-dialog" 65 | #define PREF_EXTRACT_RECREATE_FOLDERS "recreate-folders" 66 | #define PREF_EXTRACT_CREATE_SUBDIR "create-subdirectory" 67 | 68 | #define PREF_ADD_CURRENT_FOLDER "current-folder" 69 | #define PREF_ADD_FILENAME "filename" 70 | #define PREF_ADD_INCLUDE_FILES "include-files" 71 | #define PREF_ADD_EXCLUDE_FILES "exclude-files" 72 | #define PREF_ADD_EXCLUDE_FOLDERS "exclude-folders" 73 | #define PREF_ADD_UPDATE "update" 74 | #define PREF_ADD_RECURSIVE "recursive" 75 | #define PREF_ADD_NO_SYMLINKS "no-symlinks" 76 | 77 | #define PREF_BATCH_ADD_DEFAULT_EXTENSION "default-extension" 78 | #define PREF_BATCH_ADD_OTHER_OPTIONS "other-options" 79 | #define PREF_BATCH_ADD_VOLUME_SIZE "volume-size" 80 | 81 | #define CAJA_SCHEMA "org.mate.caja.preferences" 82 | #define CAJA_CLICK_POLICY "click-policy" 83 | 84 | void pref_util_save_window_geometry (GtkWindow *window, 85 | const char *dialog_id); 86 | void pref_util_restore_window_geometry (GtkWindow *window, 87 | const char *dialog_id); 88 | 89 | #endif /* PREFERENCES_H */ 90 | -------------------------------------------------------------------------------- /src/rar-utils.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * File-Roller 5 | * 6 | * Copyright (C) 2011 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #include 23 | #include 24 | #include "file-utils.h" 25 | #include "fr-command.h" 26 | #include "gio-utils.h" 27 | #include "rar-utils.h" 28 | 29 | typedef enum { 30 | FIRST_VOLUME_IS_000, 31 | FIRST_VOLUME_IS_001, 32 | FIRST_VOLUME_IS_RAR 33 | } FirstVolumeExtension; 34 | 35 | static char * 36 | get_first_volume_name (const char *name, 37 | const char *pattern, 38 | FirstVolumeExtension extension_type) 39 | { 40 | char *volume_name = NULL; 41 | GRegex *re; 42 | 43 | re = g_regex_new (pattern, G_REGEX_CASELESS, 0, NULL); 44 | if (g_regex_match (re, name, 0, NULL)) { 45 | char **parts; 46 | int l, i; 47 | 48 | parts = g_regex_split (re, name, 0); 49 | l = strlen (parts[2]); 50 | switch (extension_type) { 51 | case FIRST_VOLUME_IS_000: 52 | for (i = 0; i < l; i++) 53 | parts[2][i] = '0'; 54 | break; 55 | 56 | case FIRST_VOLUME_IS_001: 57 | for (i = 0; i < l; i++) 58 | parts[2][i] = (i < l - 1) ? '0' : '1'; 59 | break; 60 | 61 | case FIRST_VOLUME_IS_RAR: 62 | if (g_str_has_suffix (parts[1], "r")) { 63 | parts[2][0] = 'a'; 64 | parts[2][1] = 'r'; 65 | } 66 | else { 67 | parts[2][0] = 'A'; 68 | parts[2][1] = 'R'; 69 | } 70 | break; 71 | } 72 | 73 | volume_name = g_strjoinv ("", parts); 74 | 75 | g_strfreev (parts); 76 | } 77 | g_regex_unref (re); 78 | 79 | if (volume_name != NULL) { 80 | char *tmp; 81 | 82 | tmp = volume_name; 83 | volume_name = g_filename_from_utf8 (tmp, -1, NULL, NULL, NULL); 84 | g_free (tmp); 85 | } 86 | 87 | return volume_name; 88 | } 89 | 90 | void 91 | rar_check_multi_volume (FrCommand *comm) 92 | { 93 | GFile *file; 94 | char buffer[11]; 95 | 96 | file = g_file_new_for_path (comm->filename); 97 | if (! g_load_file_in_buffer (file, buffer, 11, NULL)) { 98 | g_object_unref (file); 99 | return; 100 | } 101 | 102 | if (memcmp (buffer, "Rar!", 4) != 0) 103 | return; 104 | 105 | if ((buffer[10] & 0x01) == 0x01) { 106 | char *volume_name = NULL; 107 | char *name; 108 | 109 | name = g_filename_to_utf8 (file_name_from_path (comm->filename), -1, NULL, NULL, NULL); 110 | 111 | volume_name = get_first_volume_name (name, "^(.*\\.part)([0-9]+)(\\.rar)$", FIRST_VOLUME_IS_001); 112 | if (volume_name == NULL) 113 | volume_name = get_first_volume_name (name, "^(.*\\.r)([0-9]+)$", FIRST_VOLUME_IS_RAR); 114 | if (volume_name == NULL) 115 | volume_name = get_first_volume_name (name, "^(.*\\.)([0-9]+)$", FIRST_VOLUME_IS_001); 116 | 117 | if (volume_name != NULL) { 118 | GFile *parent; 119 | GFile *volume_file; 120 | 121 | parent = g_file_get_parent (file); 122 | volume_file = g_file_get_child (parent, volume_name); 123 | fr_command_set_multi_volume (comm, volume_file); 124 | 125 | g_object_unref (volume_file); 126 | g_object_unref (parent); 127 | } 128 | 129 | g_free (name); 130 | } 131 | 132 | g_object_unref (file); 133 | } 134 | -------------------------------------------------------------------------------- /src/rar-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * File-Roller 5 | * 6 | * Copyright (C) 2011 Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program. If not, see . 20 | */ 21 | 22 | #ifndef RAR_UTILS_H 23 | #define RAR_UTILS_H 24 | 25 | #include "fr-command.h" 26 | 27 | void rar_check_multi_volume (FrCommand *comm); 28 | 29 | #endif /* RAR_UTILS_H */ 30 | -------------------------------------------------------------------------------- /src/sh/Makefile.am: -------------------------------------------------------------------------------- 1 | shdir = $(libexecdir)/$(PACKAGE) 2 | sh_DATA = isoinfo.sh 3 | 4 | EXTRA_DIST = $(sh_DATA) 5 | -include $(top_srcdir)/git.mk 6 | -------------------------------------------------------------------------------- /src/sh/isoinfo.sh: -------------------------------------------------------------------------------- 1 | filename=$2 2 | 3 | JOLIET=true 4 | ROCK_RIDGE=true 5 | 6 | ISOINFO=`isoinfo -d -i "$filename"` 7 | if echo $ISOINFO | grep "NO Joliet present" >/dev/null 2>&1; then 8 | JOLIET=false 9 | fi 10 | if echo $ISOINFO | grep "NO Rock Ridge present" >/dev/null 2>&1; then 11 | ROCK_RIDGE=false 12 | fi 13 | 14 | iso_extensions="" 15 | if test $ROCK_RIDGE = true; then 16 | iso_extensions="-R" 17 | elif test $JOLIET = true; then 18 | iso_extensions="-J" 19 | fi 20 | 21 | if test "x$3" = x-x; then 22 | file_to_extract=$4 23 | outfile=$5 24 | isoinfo $iso_extensions -i "$filename" -x "$file_to_extract" > "$outfile" 25 | else 26 | isoinfo $iso_extensions -i "$filename" -l 27 | fi 28 | -------------------------------------------------------------------------------- /src/sh/meson.build: -------------------------------------------------------------------------------- 1 | install_data('isoinfo.sh', install_dir : privexecdir) 2 | -------------------------------------------------------------------------------- /src/typedefs.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ 2 | 3 | /* 4 | * Engrampa 5 | * 6 | * Copyright (C) 2001 The Free Software Foundation, Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | */ 22 | 23 | #ifndef TYPEDEFS_H 24 | #define TYPEDEFS_H 25 | 26 | #include 27 | #include 28 | 29 | #define MEGABYTE (1024.0 * 1024.0) 30 | 31 | #define ADD_FOLDER_OPTIONS_DIR "engrampa/options" 32 | 33 | typedef enum { /*< skip >*/ 34 | FR_WINDOW_SORT_BY_NAME = 0, 35 | FR_WINDOW_SORT_BY_SIZE = 1, 36 | FR_WINDOW_SORT_BY_TYPE = 2, 37 | FR_WINDOW_SORT_BY_TIME = 3, 38 | FR_WINDOW_SORT_BY_PATH = 4 39 | } FrWindowSortMethod; 40 | 41 | typedef enum { /*< skip >*/ 42 | FR_WINDOW_LIST_MODE_FLAT, 43 | FR_WINDOW_LIST_MODE_AS_DIR 44 | } FrWindowListMode; 45 | 46 | typedef enum { 47 | FR_COMPRESSION_VERY_FAST, 48 | FR_COMPRESSION_FAST, 49 | FR_COMPRESSION_NORMAL, 50 | FR_COMPRESSION_MAXIMUM 51 | } FrCompression; 52 | 53 | typedef enum { 54 | FR_OVERWRITE_YES, 55 | FR_OVERWRITE_NO, 56 | FR_OVERWRITE_ASK 57 | } FrOverwrite; 58 | 59 | typedef enum { /*< skip >*/ 60 | FR_PROC_ERROR_NONE, 61 | FR_PROC_ERROR_GENERIC, 62 | FR_PROC_ERROR_COMMAND_ERROR, 63 | FR_PROC_ERROR_COMMAND_NOT_FOUND, 64 | FR_PROC_ERROR_EXITED_ABNORMALLY, 65 | FR_PROC_ERROR_SPAWN, 66 | FR_PROC_ERROR_STOPPED, 67 | FR_PROC_ERROR_ASK_PASSWORD, 68 | FR_PROC_ERROR_MISSING_VOLUME, 69 | FR_PROC_ERROR_IO_CHANNEL, 70 | FR_PROC_ERROR_BAD_CHARSET, 71 | FR_PROC_ERROR_UNSUPPORTED_FORMAT 72 | } FrProcErrorType; 73 | 74 | typedef struct { 75 | FrProcErrorType type; 76 | int status; 77 | GError *gerror; 78 | } FrProcError; 79 | 80 | typedef enum { /*< skip >*/ 81 | FR_COMMAND_CAN_DO_NOTHING = 0, 82 | FR_COMMAND_CAN_READ = 1 << 0, 83 | FR_COMMAND_CAN_WRITE = 1 << 1, 84 | FR_COMMAND_CAN_ARCHIVE_MANY_FILES = 1 << 2, 85 | FR_COMMAND_CAN_ENCRYPT = 1 << 3, 86 | FR_COMMAND_CAN_ENCRYPT_HEADER = 1 << 4, 87 | FR_COMMAND_CAN_CREATE_VOLUMES = 1 << 5 88 | } FrCommandCaps; 89 | 90 | #define FR_COMMAND_CAN_READ_WRITE (FR_COMMAND_CAN_READ | FR_COMMAND_CAN_WRITE) 91 | 92 | typedef struct { 93 | const char *mime_type; 94 | FrCommandCaps current_capabilities; 95 | FrCommandCaps potential_capabilities; 96 | } FrMimeTypeCap; 97 | 98 | typedef struct { 99 | const char *mime_type; 100 | const char *packages; 101 | } FrMimeTypePackages; 102 | 103 | typedef struct { 104 | int ref; 105 | GType type; 106 | GPtrArray *caps; /* array of FrMimeTypeCap */ 107 | GPtrArray *packages; /* array of FrMimeTypePackages */ 108 | } FrRegisteredCommand; 109 | 110 | typedef struct { 111 | const char *mime_type; 112 | const char *default_ext; 113 | const char *name; 114 | FrCommandCaps capabilities; 115 | } FrMimeTypeDescription; 116 | 117 | typedef struct { 118 | const char *ext; 119 | const char *mime_type; 120 | } FrExtensionType; 121 | 122 | #endif /* TYPEDEFS_H */ 123 | -------------------------------------------------------------------------------- /src/ui/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = \ 2 | add-options.ui \ 3 | batch-add-files.ui \ 4 | batch-password.ui \ 5 | delete.ui \ 6 | dlg-add-files.ui \ 7 | dlg-add-folder.ui \ 8 | dlg-extract.ui \ 9 | engrampa.about \ 10 | menus-toolbars.ui \ 11 | new.ui \ 12 | password.ui \ 13 | properties.ui \ 14 | update.ui 15 | 16 | -include $(top_srcdir)/git.mk 17 | -------------------------------------------------------------------------------- /src/ui/engrampa.about: -------------------------------------------------------------------------------- 1 | [About] 2 | Authors=Adam Erdman ;Alexander von Gluck IV ;Balló György ;Dmitry Mikhirev https://github.com/mikhirev;Elias Aebi ;Iain Nicol ;Ingo Saitz ;Jasper Lievisse Adriaanse ;Laurent Napias ;Leigh Scott ;Martin Wimpress ;Nelson Marques ;Oz N Tiram ;Pablo Barciela ;Paolo Bacchilega ;Perberos ;Piotr Drąg ;Robert Buj ;Sander Sweers ;Scott Balneaves ;Sergey Ponomarev ;Stefano Karapetsas ;Steve Zesch ;Victor Kareh ;Vlad Orlov ;Wolfgang Ulbrich ;Wu Xiaotian ;ZenWalker ;ZrN-kAyDqY https://github.com/ZrN-kAyDqY;alxpl https://github.com/alxpl;kn00tcn https://github.com/kn00tcn;octoghost https://github.com/octoghost;sponomarev ;svonohr ;tamplan https://github.com/tamplan;zhuyaliang <15132211195%163.com>; 3 | -------------------------------------------------------------------------------- /subprojects/mate-submodules.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | directory =mate-submodules 3 | url=https://github.com/mate-desktop/mate-submodules.git 4 | push-url=ssh://git@github.com:mate-desktop/mate-submodules.git 5 | revision=master 6 | depth=1 7 | -------------------------------------------------------------------------------- /update-authors.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | =pod 3 | 4 | update-authors.pl is part of Engrampa. 5 | 6 | Engrampa is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | Engrampa is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with Engrampa. If not, see . 18 | 19 | =cut 20 | use strict; 21 | use warnings; 22 | 23 | sub ReplaceAuthors { 24 | my @authors = @_; 25 | $_ eq 'bl0ckeduser ' and $_ = 'Gabriel Cormier-Affleck ' for @authors; 26 | $_ eq 'hekel ' and $_ = 'Adam Erdman ' for @authors; 27 | $_ eq 'infirit ' and $_ = 'Sander Sweers ' for @authors; 28 | $_ eq 'leigh123linux ' and $_ = 'Leigh Scott ' for @authors; 29 | $_ eq 'lyokha ' and $_ = 'Alexey Radkov ' for @authors; 30 | $_ eq 'Martin Wimpress ' and $_ = 'Martin Wimpress ' for @authors; 31 | $_ eq 'Martin Wimpress ' and $_ = 'Martin Wimpress ' for @authors; 32 | $_ eq 'monsta ' and $_ = 'Vlad Orlov ' for @authors; 33 | $_ eq 'Monsta ' and $_ = 'Vlad Orlov ' for @authors; 34 | $_ eq 'Oz ' and $_ = 'Oz N Tiram ' for @authors; 35 | $_ eq 'Paolo Bacchilega ' and $_ = 'Paolo Bacchilega ' for @authors; 36 | $_ eq 'Paolo Bacchilega ' and $_ = 'Paolo Bacchilega ' for @authors; 37 | $_ eq 'raveit ' and $_ = 'Wolfgang Ulbrich ' for @authors; 38 | $_ eq 'raveit65 ' and $_ = 'Wolfgang Ulbrich ' for @authors; 39 | $_ eq 'raveit65 ' and $_ = 'Wolfgang Ulbrich ' for @authors; 40 | $_ eq 'rbuj ' and $_ = 'Robert Buj ' for @authors; 41 | $_ eq 'Scott Balneaves ' and $_ = 'Scott Balneaves ' for @authors; 42 | $_ eq 'sc0w ' and $_ = 'ZenWalker ' for @authors; 43 | $_ eq 'Victor Kareh ' and $_ = 'Victor Kareh ' for @authors; 44 | $_ eq 'Wolfgang Ulbrich ' and $_ = 'Wolfgang Ulbrich ' for @authors; 45 | return @authors; 46 | } 47 | 48 | sub GetCurrentAuthors { 49 | my @authors; 50 | open(FILE,"src/ui/engrampa.about") or die "Can't open src/ui/engrampa.about"; 51 | while () { 52 | if (/^Authors=*(.+)$/) { 53 | @authors=split(";",$1); 54 | } 55 | } 56 | close FILE; 57 | return ReplaceAuthors(@authors); 58 | } 59 | 60 | sub GetNewAuthors { 61 | my @authors = `git log --pretty="%an <%ae>" --since "2012-01-01" -- . "_.h" "_.c" | sort | uniq | sed 's/@/%/g' | sed '/^mate-i18n.*/d'`; 62 | chomp @authors; 63 | return ReplaceAuthors(@authors); 64 | } 65 | 66 | my @A = GetCurrentAuthors; 67 | my @B = GetNewAuthors; 68 | for (@B) { 69 | s/<\d+\+(.+?)%users\.noreply\.github\.com>/<$1%users\.noreply\.github\.com>/; 70 | s/<(.+?)%users\.noreply\.github\.com>/https:\/\/github.com\/$1/; 71 | } 72 | my @merged = sort { $a cmp $b } keys %{{map {($_ => 1)} (@A, @B)}}; 73 | print join(';',@merged) . ';'; 74 | --------------------------------------------------------------------------------