@@ -17,41 +17,41 @@ oeis() (
1717 # -- MAIN --
1818 # Search sequence by ID (optional language arg)
1919 # . oeis <SEQ_ID>
20- # . oeis <SEQ_ID> <LANGUAGE >
21- # . oeis <LANGUAGE > <SEQ_ID>
20+ # . oeis <SEQ_ID> <SECTION >
21+ # . oeis <SECTION > <SEQ_ID>
2222 isNum=' ^[0-9]+$'
2323 # Search for specific sequence (and potentially language or :SECTION (list)
2424 if [ $# -ge 1 ] \
2525 && [[ $( echo $1 | tr -d ' aA' ) =~ $isNum || $( echo $2 | tr -d ' aA' ) =~ $isNum ]] \
2626 && [[ ! $( echo $1 | tr -d ' aA' ) =~ $isNum || ! $( echo $2 | tr -d ' aA' ) =~ $isNum ]]
2727 then
2828 # Arg-Parse ID, Generate URL
29- if echo ${1^^} | grep -q ' [B-Z] '
29+ if [[ $( echo $1 | tr -d ' aA ' ) =~ $isNum ]]
3030 then
31- ID=${2^^}
32- LANGUAGE=$1
33- else
3431 ID=${1^^}
35- LANGUAGE=$2
32+ SECTION=$2
33+ else
34+ ID=${2^^}
35+ SECTION=$1
3636 fi
3737 [[ ${ID: 0: 1} == ' A' ]] && ID=${ID: 1}
3838 ID=$( bc <<< " $ID" )
3939 ID=" A$( printf ' %06d' ${ID} ) "
4040 URL+=" id:${ID} &fmt=text"
4141 curl $URL 2> /dev/null > $DOC
4242 # :list available language code_snippets
43- if [[ ${LANGUAGE ^^} == ' :LIST' ]]
43+ if [[ ${SECTION ^^} == ' :LIST' || ${SECTION^^} == ' :PROG ' ]]
4444 then
45- rm -f ${TMP} /list
46- grep -q ' %p' $DOC && echo ' maple' >> $TMP /list
47- grep -q ' %t' $DOC && echo ' mathematica' >> $TMP /list
45+ rm -f ${TMP} /section
46+ grep -q ' %p' $DOC && echo ' maple' >> $TMP /section
47+ grep -q ' %t' $DOC && echo ' mathematica' >> $TMP /section
4848 grep ' %o' $DOC \
4949 | grep " ${ID} (" \
5050 | sed " s/^.*${ID} (//; s/).*//" \
5151 | awk ' NF == 1' \
52- >> $TMP /list
53- [[ -f $TMP /list && $( wc -c < $TMP /list ) -ne 0 ]] \
54- && cat ${TMP} /list | sort -u \
52+ >> $TMP /section
53+ [[ -f $TMP /section && $( wc -c < $TMP /section ) -ne 0 ]] \
54+ && cat ${TMP} /section | sort -u \
5555 || printf ' No code snippets available.\n'
5656 return 0
5757 fi
@@ -73,20 +73,20 @@ oeis() (
7373 printf " \n\n"
7474 rm -f $TMP /code_snippet
7575 # MAPLE section (%p)
76- if [[ ${LANGUAGE ^^} == ' MAPLE' ]] && grep -q ' %p' $DOC
76+ if [[ ${SECTION ^^} == ' MAPLE' ]] && grep -q ' %p' $DOC
7777 then
7878 grep ' %p' $DOC | sed " s/^.*${ID} //" > $TMP /code_snippet
7979 # MATHEMATICA section (%t)
80- elif [[ ${LANGUAGE ^^} == ' MATHEMATICA' ]] && grep -q ' %t' $DOC
80+ elif [[ ${SECTION ^^} == ' MATHEMATICA' ]] && grep -q ' %t' $DOC
8181 then
8282 grep ' %t' $DOC | sed " s/^.*${ID} //" > $TMP /code_snippet
8383 # PROG section (%o)
84- elif grep -qi ' %o' $DOC && grep -qi $LANGUAGE $DOC
84+ elif grep -qi ' %o' $DOC && grep -qi $SECTION $DOC
8585 then
8686 # Print out code sample for specified language
8787 grep ' %o' $DOC \
8888 | sed " s/%o ${ID} //" \
89- | awk -v tgt=" ${LANGUAGE ^^} " -F'[ ()]' ' {act=$2 } sub(/^\( [^()]+\) * /," " ){f=(tgt==toupper(act))} f' \
89+ | awk -v tgt=" ${SECTION ^^} " -F'[ ()]' ' {act=$2 } sub(/^\( [^()]+\) * /," " ){f=(tgt==toupper(act))} f' \
9090 > ${TMP}/code_snippet
9191 fi
9292 # Print code snippet with 4-space indent to enable colorization
@@ -95,7 +95,7 @@ oeis() (
9595 cat ${TMP}/code_snippet \
9696 | sed ' s/^/ /'
9797 else
98- printf "${LANGUAGE ^^} unavailable. Use :list to view available languages.\n"
98+ printf "${SECTION ^^} unavailable. Use :list to view available languages.\n"
9999 fi
100100 fi
101101 # Search unknown sequence
0 commit comments