1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#!/bin/sh
#**********************************************************************
# Copyright (C) 2021 - The Geeqie Team
#
# Author: Colin Clark
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#**********************************************************************
## @file
## @brief Facilitate the integration of the Doxygen html files
## into a code editor.
##
## doxygen-help.sh <parameter to be searched for>
##
## The environment variable DOCDIR must be set to point to the
## Doxygen html files location.
##
## The environment variable PROJECT must be set to the value used
## when creating the Doxygen files.
##
## Set a hot key in the code editor to call this script with
## the highlighted variable or function name as a parameter.
##
## The file $DOCDIR/searchdata.xml contains an index of all documented
## items and is scanned to locate the relevant html section.
##
## xdg-open is used to call the html browser to display the document.
##
## **********************************************************************
##
## To generate the Doxygen html files run 'doxygen.sh'
##
## searchdata.xml is searched for a string of type; \n
## <field name="name">ExifWin</field> \n
## <field name="url"> \n
## or \n
## <field name="name">advanced_exif_new</field> \n
## <field name="args"> \n
## <field name="url">
##
## If this fails, search again for a string of type: \n
## .*ADVANCED_EXIF_DATA_COLUMN_WIDTH.* \n
## <field name="url">
##
if [ -z "${DOCDIR}" ]
then
printf '%s\n' "Environment variable DOCDIR not set"
zenity --title="Geeqie" --width=200 --warning --text="Environment variable DOCDIR not set"
elif [ -z "${PROJECT}" ]
then
printf '%s\n' "Environment variable PROJECT not set"
zenity --title="Geeqie" --width=200 --warning --text="Environment variable PROJECT not set"
else
url_found=$(awk -W posix -v search_param="$1" -v docdir="$DOCDIR" '
BEGIN {
LINT = "fatal"
FS=">|<"
}
{
if (match($0, "<field name=\"name\">"search_param"</field>"))
{
getline
if (match($0, "url") > 0)
{
n=split($0, url_name, /[<>]/)
print "file://"docdir"/html/"url_name[3]
exit
}
else
{
getline
if (match($0, "url") > 0)
{
n=split($0, url_name, /[<>]/)
print "file://"docdir"/html/"url_name[3]
exit
}
}
}
}
' "$DOCDIR/searchdata.xml")
if [ -z "$url_found" ]
then
url_found=$(awk -W posix -v search_param="$1" -v docdir="$DOCDIR" '
BEGIN {
LINT = "fatal"
FS=">|<"
}
{
if (match($0, search_param) > 0)
{
getline
if (match($0, "url") > 0)
{
n=split($0, url_name, /[<>]/)
print "file://"docdir"/html/"url_name[3]
exit
}
}
}
' "$DOCDIR/searchdata.xml")
if [ -z "$url_found" ]
then
exit 1
else
xdg-open "$url_found"
exit 0
fi
else
xdg-open "$url_found"
exit 0
fi
fi
|