default config: fixed some mtypes without icons or catgs
This commit is contained in:
parent
e38e58c37a
commit
be81082f38
@ -202,16 +202,24 @@ text/xml = internal text/plain
|
||||
[icons]
|
||||
application/epub+zip = book
|
||||
application/javascript = source
|
||||
application/javascript = source
|
||||
application/msword = wordprocessing
|
||||
application/ogg = sownd
|
||||
application/pdf = pdf
|
||||
application/postscript = postscript
|
||||
application/sql = source
|
||||
application/vnd.ms-excel = spreadsheet
|
||||
application/vnd.ms-office = document
|
||||
application/vnd.ms-outlook = document
|
||||
application/vnd.ms-powerpoint = presentation
|
||||
application/vnd.oasis.opendocument.presentation = presentation
|
||||
application/vnd.oasis.opendocument.spreadsheet = spreadsheet
|
||||
application/vnd.oasis.opendocument.text = wordprocessing
|
||||
application/vnd.oasis.opendocument.graphics = presentation
|
||||
application/vnd.oasis.opendocument.presentation-flat-xml = presentation
|
||||
application/vnd.oasis.opendocument.spreadsheet-flat-xml = spreadsheet
|
||||
application/vnd.oasis.opendocument.text-flat-xml = wordprocessing
|
||||
application/vnd.oasis.opendocument.text-template = wordprocessing
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation = presentation
|
||||
application/vnd.openxmlformats-officedocument.presentationml.template = presentation
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet = spreadsheet
|
||||
@ -229,6 +237,7 @@ application/vnd.sun.xml.writer = wordprocessing
|
||||
application/vnd.sun.xml.writer.global = wordprocessing
|
||||
application/vnd.sun.xml.writer.template = wordprocessing
|
||||
application/vnd.wordperfect = wordprocessing
|
||||
application/x-7z-compressed = archive
|
||||
application/x-abiword = wordprocessing
|
||||
application/x-awk = source
|
||||
application/x-chm = book
|
||||
@ -255,9 +264,13 @@ application/x-tex = wordprocessing
|
||||
application/x-webarchive = archive
|
||||
application/xml = document
|
||||
application/zip = archive
|
||||
application/x-7z-compressed = archive
|
||||
audio/aac = sownd
|
||||
audio/ape = sownd
|
||||
audio/mp4 = sownd
|
||||
audio/mpeg = sownd
|
||||
audio/x-karaoke = sownd
|
||||
audio/x-musepack = sownd
|
||||
audio/x-wavpack = sownd
|
||||
image/bmp = image
|
||||
image/gif = image
|
||||
image/jp2 = image
|
||||
@ -266,35 +279,40 @@ image/png = image
|
||||
image/svg+xml = drawing
|
||||
image/tiff = image
|
||||
image/vnd.djvu = document
|
||||
image/x-nikon-nef = image
|
||||
image/x-xcf = image
|
||||
image/x-xpmi = image
|
||||
image/x-nikon-nef = image
|
||||
inode/directory = folder
|
||||
inode/symlink = emblem-symbolic-link
|
||||
message/rfc822 = message
|
||||
text/css = html
|
||||
text/html = html
|
||||
text/html|chm = bookchap
|
||||
text/html|epub = bookchap
|
||||
text/html|gnuinfo = bookchap
|
||||
text/plain = txt
|
||||
text/rtf = wordprocessing
|
||||
text/x-bibtex = txt
|
||||
text/x-c = source
|
||||
text/x-c+ = source
|
||||
text/x-c++ = source
|
||||
text/x-chm-html = html
|
||||
text/x-csharp = source
|
||||
text/x-csv = txt
|
||||
text/x-fictionbook = document
|
||||
text/x-fictionbook = book
|
||||
text/x-html-aptosid-man = aptosid-book
|
||||
text/x-ini = txt
|
||||
text/x-bibtex = txt
|
||||
text/x-lua = source
|
||||
text/x-java = source
|
||||
text/x-lua = source
|
||||
text/x-mail = message
|
||||
text/x-man = document
|
||||
text/x-perl = source
|
||||
text/x-php = source
|
||||
text/x-purple-html-log = pidgin
|
||||
text/x-purple-log = pidgin
|
||||
text/x-python = text-x-python
|
||||
text/x-shellscript = source
|
||||
text/x-srt = source
|
||||
text/x-tex = wordprocessing
|
||||
text/xml = document
|
||||
video/3gpp = video
|
||||
@ -316,11 +334,14 @@ video/x-msvideo = video
|
||||
# "guifilters" section below.
|
||||
text = \
|
||||
application/epub+zip \
|
||||
application/javascript \
|
||||
application/msword \
|
||||
application/pdf \
|
||||
application/postscript \
|
||||
application/sql \
|
||||
application/vnd.oasis.opendocument.text \
|
||||
application/vnd.oasis.opendocument.text-flat-xml \
|
||||
application/vnd.oasis.opendocument.text-template \
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document \
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.template \
|
||||
application/vnd.sun.xml.writer \
|
||||
@ -328,6 +349,7 @@ text = \
|
||||
application/vnd.sun.xml.writer.template \
|
||||
application/vnd.wordperfect \
|
||||
application/x-abiword \
|
||||
application/vnd.ms-office \
|
||||
application/x-awk \
|
||||
application/x-chm \
|
||||
application/x-dvi \
|
||||
@ -338,6 +360,7 @@ text = \
|
||||
application/x-mobipocket-ebook \
|
||||
application/x-okular-notes \
|
||||
application/x-perl \
|
||||
application/x-php \
|
||||
application/x-scribus \
|
||||
application/x-shellscript \
|
||||
application/x-tex \
|
||||
@ -347,6 +370,7 @@ text = \
|
||||
text/x-tex \
|
||||
image/vnd.djvu \
|
||||
text/calendar \
|
||||
text/css \
|
||||
text/html \
|
||||
text/plain \
|
||||
text/rtf \
|
||||
@ -354,6 +378,8 @@ text = \
|
||||
text/x-c \
|
||||
text/x-c++ \
|
||||
text/x-c+ \
|
||||
text/x-chm-html \
|
||||
text/x-csharp \
|
||||
text/x-lua \
|
||||
text/x-fictionbook \
|
||||
text/x-html-aptosid-man \
|
||||
@ -362,25 +388,30 @@ text = \
|
||||
text/x-java \
|
||||
text/x-man \
|
||||
text/x-perl \
|
||||
text/x-php \
|
||||
text/x-python \
|
||||
text/x-shellscript
|
||||
text/x-shellscript \
|
||||
text/x-srt \
|
||||
|
||||
spreadsheet = \
|
||||
application/vnd.ms-excel \
|
||||
application/vnd.oasis.opendocument.spreadsheet \
|
||||
application/vnd.oasis.opendocument.spreadsheet-flat-xml \
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet \
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.template \
|
||||
application/vnd.sun.xml.calc \
|
||||
application/vnd.sun.xml.calc.template \
|
||||
application/x-gnumeric
|
||||
application/x-gnumeric \
|
||||
|
||||
presentation = \
|
||||
application/vnd.ms-powerpoint \
|
||||
application/vnd.oasis.opendocument.graphics \
|
||||
application/vnd.oasis.opendocument.presentation \
|
||||
application/vnd.oasis.opendocument.presentation-flat-xml \
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation \
|
||||
application/vnd.openxmlformats-officedocument.presentationml.template \
|
||||
application/vnd.sun.xml.impress \
|
||||
application/vnd.sun.xml.impress.template
|
||||
application/vnd.sun.xml.impress.template \
|
||||
|
||||
media = \
|
||||
application/ogg \
|
||||
@ -389,25 +420,30 @@ media = \
|
||||
image/* \
|
||||
video/* \
|
||||
|
||||
message = message/rfc822 \
|
||||
text/x-gaim-log \
|
||||
text/x-mail \
|
||||
text/x-purple-log \
|
||||
text/x-purple-html-log \
|
||||
message = \
|
||||
message/rfc822 \
|
||||
text/x-gaim-log \
|
||||
text/x-mail \
|
||||
text/x-purple-html-log \
|
||||
text/x-purple-log \
|
||||
|
||||
other = application/vnd.sun.xml.draw \
|
||||
other = \
|
||||
application/vnd.ms-outlook \
|
||||
application/vnd.sun.xml.draw \
|
||||
application/vnd.sun.xml.draw.template \
|
||||
application/vnd.sun.xml.math \
|
||||
application/x-7z-compressed \
|
||||
application/x-dia-diagram \
|
||||
application/x-fsdirectory \
|
||||
application/x-mimehtml \
|
||||
application/x-rar \
|
||||
application/x-tar \
|
||||
application/x-webarchive \
|
||||
application/x-zerosize \
|
||||
application/zip \
|
||||
application/x-7z-compressed \
|
||||
inode/directory \
|
||||
inode/symlink \
|
||||
inode/x-empty \
|
||||
|
||||
[guifilters]
|
||||
# This defines the top level filters in the GUI (accessed by the the
|
||||
|
||||
@ -58,6 +58,11 @@ application/vnd.ms-powerpoint = libreoffice %f
|
||||
application/vnd.oasis.opendocument.text = libreoffice %f
|
||||
application/vnd.oasis.opendocument.presentation = libreoffice %f
|
||||
application/vnd.oasis.opendocument.spreadsheet = libreoffice %f
|
||||
application/vnd.oasis.opendocument.graphics = libreoffice %f
|
||||
application/vnd.oasis.opendocument.presentation-flat-xml = libreoffice %f
|
||||
application/vnd.oasis.opendocument.spreadsheet-flat-xml = libreoffice %f
|
||||
application/vnd.oasis.opendocument.text-flat-xml = libreoffice %f
|
||||
application/vnd.oasis.opendocument.text-template = libreoffice %f
|
||||
|
||||
application/vnd.openxmlformats-officedocument.wordprocessingml.document = \
|
||||
libreoffice %f
|
||||
@ -102,20 +107,28 @@ application/x-gnumeric = gnumeric %f
|
||||
|
||||
application/x-flac = rhythmbox %f
|
||||
audio/mpeg = rhythmbox %f
|
||||
audio/aac = rhythmbox %f
|
||||
audio/ape = rhythmbox %f
|
||||
audio/mp4 = rhythmbox %f
|
||||
audio/x-musepack = rhythmbox %f
|
||||
audio/x-wavpack = rhythmbox %f
|
||||
application/ogg = rhythmbox %f
|
||||
|
||||
audio/x-karaoke = kmid %f
|
||||
|
||||
image/jpeg = gwenview %f
|
||||
image/png = gwenview %f
|
||||
image/tiff = gwenview %f
|
||||
image/gif = gwenview %f
|
||||
image/svg+xml = inkview %f
|
||||
image/jpeg = ristretto %f
|
||||
image/jp2 = ristretto %f
|
||||
image/png = ristretto %f
|
||||
image/tiff = ristretto %f
|
||||
image/gif = ristretto %f
|
||||
image/vnd.djvu = djview %f
|
||||
image/bmp = ristretto %f
|
||||
image/x-ms-bmp = ristretto %f
|
||||
image/x-xpmi = ristretto %f
|
||||
|
||||
image/x-xcf = gimp %f
|
||||
image/bmp = gwenview %f
|
||||
image/x-ms-bmp = gwenview %f
|
||||
image/x-xpmi = gwenview %f
|
||||
image/x-nikon-nef = ufraw %f
|
||||
image/svg+xml = inkview %f
|
||||
|
||||
# Opening mail messages:
|
||||
# - Thunderbird will only open a single-message file if it has an .eml
|
||||
@ -146,15 +159,26 @@ application/x-tar = ark %f
|
||||
application/zip = ark %f
|
||||
application/x-7z-compressed = ark %f
|
||||
|
||||
application/javascript = emacsclient --no-wait %f
|
||||
application/x-awk = emacsclient --no-wait %f
|
||||
application/x-bibtex = emacsclient --no-wait %f
|
||||
application/x-csharp = emacsclient --no-wait %f
|
||||
application/x-java = emacsclient --no-wait %f
|
||||
application/x-perl = emacsclient --no-wait %f
|
||||
text/x-perl = emacsclient --no-wait %f
|
||||
application/x-php = emacsclient --no-wait %f
|
||||
application/x-shellscript = emacsclient --no-wait %f
|
||||
text/x-bibtex = emacsclient --no-wait %f
|
||||
text/css = emacsclient --no-wait %f
|
||||
text/x-csharp = emacsclient --no-wait %f
|
||||
text/x-java = emacsclient --no-wait %f
|
||||
text/x-perl = emacsclient --no-wait %f
|
||||
text/x-shellscript = emacsclient --no-wait %f
|
||||
text/x-srt = emacsclient --no-wait %f
|
||||
|
||||
# Or firefox -remote "openFile(%u)"
|
||||
text/html = firefox %u
|
||||
application/x-chm-html = %u
|
||||
text/x-chm-html = %u
|
||||
|
||||
# gnu info nodes are translated to html with a "gnuinfo"
|
||||
# rclaptg. rclshowinfo knows how to start the info command on the right
|
||||
@ -163,6 +187,9 @@ text/html|gnuinfo = rclshowinfo %F %(title);ignoreipath=1
|
||||
|
||||
application/x-webarchive = konqueror %f
|
||||
text/x-fictionbook = ebook-viewer %f
|
||||
|
||||
application/x-javascript = emacsclient --no-wait %f
|
||||
application/sql = emacsclient --no-wait %f
|
||||
application/x-tex = emacsclient --no-wait %f
|
||||
application/xml = emacsclient --no-wait %f
|
||||
text/xml = emacsclient --no-wait %f
|
||||
|
||||
208
src/testmains/trrclconfig.cpp
Normal file
208
src/testmains/trrclconfig.cpp
Normal file
@ -0,0 +1,208 @@
|
||||
/* Copyright (C) 2017-2019 J.F.Dockes
|
||||
*
|
||||
* License: GPL 2.1
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation; either version 2.1 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the
|
||||
* Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
#include "log.h"
|
||||
|
||||
#include "rclinit.h"
|
||||
#include "rclconfig.h"
|
||||
#include "cstr.h"
|
||||
|
||||
static char *thisprog;
|
||||
|
||||
static char usage [] = "\n"
|
||||
"-c: check a few things in the configuration files\n"
|
||||
"[-s subkey] -q param : query parameter value\n"
|
||||
"-f : print some field data\n"
|
||||
" : default: print parameters\n"
|
||||
|
||||
;
|
||||
static void
|
||||
Usage(void)
|
||||
{
|
||||
fprintf(stderr, "%s: usage: %s\n", thisprog, usage);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
static int op_flags;
|
||||
#define OPT_MOINS 0x1
|
||||
#define OPT_s 0x2
|
||||
#define OPT_q 0x4
|
||||
#define OPT_c 0x8
|
||||
#define OPT_f 0x10
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
string pname, skey;
|
||||
|
||||
thisprog = argv[0];
|
||||
argc--; argv++;
|
||||
|
||||
while (argc > 0 && **argv == '-') {
|
||||
(*argv)++;
|
||||
if (!(**argv))
|
||||
/* Cas du "adb - core" */
|
||||
Usage();
|
||||
while (**argv)
|
||||
switch (*(*argv)++) {
|
||||
case 'c': op_flags |= OPT_c; break;
|
||||
case 'f': op_flags |= OPT_f; break;
|
||||
case 's': op_flags |= OPT_s; if (argc < 2) Usage();
|
||||
skey = *(++argv);
|
||||
argc--;
|
||||
goto b1;
|
||||
case 'q': op_flags |= OPT_q; if (argc < 2) Usage();
|
||||
pname = *(++argv);
|
||||
argc--;
|
||||
goto b1;
|
||||
default: Usage(); break;
|
||||
}
|
||||
b1: argc--; argv++;
|
||||
}
|
||||
|
||||
if (argc != 0)
|
||||
Usage();
|
||||
|
||||
string reason;
|
||||
RclConfig *config = recollinit(0, 0, 0, reason);
|
||||
if (config == 0 || !config->ok()) {
|
||||
cerr << "Configuration problem: " << reason << endl;
|
||||
exit(1);
|
||||
}
|
||||
if (op_flags & OPT_s)
|
||||
config->setKeyDir(skey);
|
||||
if (op_flags & OPT_q) {
|
||||
string value;
|
||||
if (!config->getConfParam(pname, value)) {
|
||||
fprintf(stderr, "getConfParam failed for [%s]\n", pname.c_str());
|
||||
exit(1);
|
||||
}
|
||||
printf("[%s] -> [%s]\n", pname.c_str(), value.c_str());
|
||||
} else if (op_flags & OPT_f) {
|
||||
set<string> stored = config->getStoredFields();
|
||||
set<string> indexed = config->getIndexedFields();
|
||||
cout << "Stored fields: ";
|
||||
for (set<string>::const_iterator it = stored.begin();
|
||||
it != stored.end(); it++) {
|
||||
cout << "[" << *it << "] ";
|
||||
}
|
||||
cout << endl;
|
||||
cout << "Indexed fields: ";
|
||||
for (set<string>::const_iterator it = indexed.begin();
|
||||
it != indexed.end(); it++) {
|
||||
const FieldTraits *ftp;
|
||||
config->getFieldTraits(*it, &ftp);
|
||||
if (ftp)
|
||||
cout << "[" << *it << "]" << " -> [" << ftp->pfx << "] ";
|
||||
else
|
||||
cout << "[" << *it << "]" << " -> [" << "(none)" << "] ";
|
||||
|
||||
}
|
||||
cout << endl;
|
||||
} else if (op_flags & OPT_c) {
|
||||
// Checking the configuration consistency
|
||||
|
||||
// Find and display category names
|
||||
vector<string> catnames;
|
||||
config->getMimeCategories(catnames);
|
||||
cout << "Categories: ";
|
||||
for (vector<string>::const_iterator it = catnames.begin();
|
||||
it != catnames.end(); it++) {
|
||||
cout << *it << " ";
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
// Compute union of all types from each category. Check that there
|
||||
// are no duplicates while we are at it.
|
||||
set<string> allmtsfromcats;
|
||||
for (vector<string>::const_iterator it = catnames.begin();
|
||||
it != catnames.end(); it++) {
|
||||
vector<string> cts;
|
||||
config->getMimeCatTypes(*it, cts);
|
||||
for (vector<string>::const_iterator it1 = cts.begin();
|
||||
it1 != cts.end(); it1++) {
|
||||
// Already in map -> duplicate
|
||||
if (allmtsfromcats.find(*it1) != allmtsfromcats.end()) {
|
||||
cout << "Duplicate: [" << *it1 << "]" << endl;
|
||||
}
|
||||
allmtsfromcats.insert(*it1);
|
||||
}
|
||||
}
|
||||
|
||||
// Retrieve complete list of mime types
|
||||
vector<string> mtypes = config->getAllMimeTypes();
|
||||
|
||||
// And check that each mime type is found in exactly one category
|
||||
// And have an icon
|
||||
for (const auto& mtype: mtypes) {
|
||||
if (allmtsfromcats.find(mtype) == allmtsfromcats.end()) {
|
||||
cout << "Not found in catgs: [" << mtype << "]" << endl;
|
||||
}
|
||||
// We'd like to check for types with no icons, but
|
||||
// getMimeIconPath() returns the valid 'document' by
|
||||
// default, we'd have to go look into the confsimple
|
||||
// directly.
|
||||
// string path = config->getMimeIconPath(mtype, string());
|
||||
// cout << mtype << " -> " << path << endl;
|
||||
}
|
||||
|
||||
// List mime types not in mimeview
|
||||
for (vector<string>::const_iterator it = mtypes.begin();
|
||||
it != mtypes.end(); it++) {
|
||||
if (config->getMimeViewerDef(*it, "", false).empty()) {
|
||||
cout << "No viewer: [" << *it << "]" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
// Check that each mime type has an indexer
|
||||
for (vector<string>::const_iterator it = mtypes.begin();
|
||||
it != mtypes.end(); it++) {
|
||||
if (config->getMimeHandlerDef(*it, false).empty()) {
|
||||
cout << "No filter: [" << *it << "]" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
// Check that each mime type has a defined icon
|
||||
for (vector<string>::const_iterator it = mtypes.begin();
|
||||
it != mtypes.end(); it++) {
|
||||
if (config->getMimeIconPath(*it, "") == "document") {
|
||||
cout << "No or generic icon: [" << *it << "]" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
config->setKeyDir(cstr_null);
|
||||
vector<string> names = config->getConfNames();
|
||||
for (vector<string>::iterator it = names.begin();
|
||||
it != names.end();it++) {
|
||||
string value;
|
||||
config->getConfParam(*it, value);
|
||||
cout << *it << " -> [" << value << "]" << endl;
|
||||
}
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user