| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| function texinfo_makeSeeAlso { |
| |
| |
| local CHILD_ENTRIES='' |
| local CHILD_ENTRY='' |
| local ENTRY_PATTERN='' |
| local LIST_DEF='' |
| local LIST_ENTRIES='' |
| local LIST_TYPE='' |
| local LIST_TYPE_PATTERN='' |
| local MANUAL_ENTRY='' |
| local TMARK='' |
| local TMARK_PATTERN='' |
| local TMARKS='' |
| |
| |
| MANUAL_ENTRY="$1" |
| |
| |
| |
| if [[ ! -f $MANUAL_ENTRY ]];then |
| return |
| fi |
| |
| |
| TMARK_PATTERN="^@c -- <\[${CLI_NAME}\(SeeAlso(,(itemize|enumerate|menu))?\)$" |
| |
| |
| |
| |
| |
| |
| TMARKS=$(egrep "${TMARK_PATTERN}" $MANUAL_ENTRY | sort | uniq) |
| |
| |
| |
| |
| |
| TMARKS=$(echo "$TMARKS" | sed -r 's/ /\\040/g') |
| |
| |
| |
| |
| |
| |
| |
| ENTRY_PATTERN=$(echo "$MANUAL_ENTRY" | sed -r "s/\.${MANUAL_EXTENSION}$//") |
| |
| |
| |
| |
| CHILD_ENTRIES=$(cli_getFilesList $(dirname ${MANUAL_ENTRY}) \ |
| --pattern="${ENTRY_PATTERN}-[[:alnum:]]+\.${MANUAL_EXTENSION}" | sort -r | uniq ) |
| |
| |
| for TMARK in $TMARKS;do |
| |
| |
| |
| |
| |
| LIST_TYPE=$(echo "$TMARK" | sed -r -e 's/\\040/ /g' -e "s/${TMARK_PATTERN}/\2/") |
| |
| |
| |
| |
| if [[ $LIST_TYPE == '' ]];then |
| LIST_TYPE="itemize" |
| fi |
| |
| |
| LIST_PROP=$(echo "$TMARK" | sed -r -e 's/\\040/ /g' -e "s/${TMARK_PATTERN}/\1/") |
| |
| |
| |
| |
| |
| |
| |
| |
| LIST_TYPE_PATTERN="^@c -- <\[${CLI_NAME}\(SeeAlso${LIST_PROP}\)$" |
| |
| |
| if [[ $LIST_TYPE =~ '^menu$' ]];then |
| for CHILD_ENTRY in $CHILD_ENTRIES;do |
| LIST_ENTRIES="* $(texinfo_getEntryNode "$CHILD_ENTRY")::\n${LIST_ENTRIES}" |
| done |
| elif [[ $LIST_TYPE =~ '^(itemize|enumerate)$' ]];then |
| for CHILD_ENTRY in $CHILD_ENTRIES;do |
| LIST_ENTRIES="@item @ref{$(texinfo_getEntryNode "$CHILD_ENTRY")}\n${LIST_ENTRIES}" |
| done |
| else |
| |
| |
| continue |
| fi |
| |
| |
| LIST_DEF="@c -- <[${CLI_NAME}(SeeAlso${LIST_PROP})\n@${LIST_TYPE}\n${LIST_ENTRIES}@end ${LIST_TYPE}\n@c -- ]>" |
| |
| |
| |
| |
| |
| sed -r -i "/${LIST_TYPE_PATTERN}/{:a;N;/\n@c -- ]>$/!ba;s/.*/${LIST_DEF}/;}" $MANUAL_ENTRY |
| |
| |
| |
| LIST_DEF='' |
| LIST_ENTRIES='' |
| LIST_TYPE='' |
| |
| done |
| |
| } |