Skip to content

Commit b5327a5

Browse files
committed
Bug fix
1 parent 63eb4c8 commit b5327a5

File tree

4 files changed

+154
-34
lines changed

4 files changed

+154
-34
lines changed

includefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ includeAwkscript=$(
179179
if(!(fpath in include)) {
180180
read_file(fpath, include)
181181
}
182-
} else if(fields[1] == "EOF" || fields[1] == "'") {
182+
} else if(fields[1] == "__EOF__" || fields[1] == "'") {
183183
split("", include)
184184
printf("%s\n", record)
185185
} else {

release/.w3mplus/bin/searchuri

Lines changed: 60 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -782,34 +782,74 @@ esac
782782
awkScript=$(
783783
cat <<-'__EOF__'
784784
785-
BEGIN {
786-
FS = "\t"
787-
exitStatus = 0
788785
789-
count = split(engine, engines, ",")
790-
split("", template)
791-
}
792786
793-
{
794-
template[$1] = $2
787+
function sysexits(code) {
788+
if(code == "EX_OK") {
789+
return 0
790+
} else if(code == "EX_USAGE") {
791+
return 64
792+
} else if(code == "EX_DATAERR") {
793+
return 65
794+
} else if(code == "EX_NOINPUT") {
795+
return 66
796+
} else if(code == "EX_NOUSER") {
797+
return 67
798+
} else if(code == "EX_NOHOST") {
799+
return 68
800+
} else if(code == "EX_UNAVAILABLE") {
801+
return 69
802+
} else if(code == "EX_SOFTWARE") {
803+
return 70
804+
} else if(code == "EX_OSERR") {
805+
return 71
806+
} else if(code == "EX_OSFILE") {
807+
return 72
808+
} else if(code == "EX_CANTCREAT") {
809+
return 73
810+
} else if(code == "EX_IOERR") {
811+
return 74
812+
} else if(code == "EX_TEMPFAIL") {
813+
return 75
814+
} else if(code == "EX_PROTOCOL") {
815+
return 76
816+
} else if(code == "EX_NOPERM") {
817+
return 77
818+
} else if(code == "EX_CONFIG") {
819+
return 78
820+
}
821+
822+
return 1
795823
}
796824
797-
END {
798-
for(i = 1; i <= count; i++) {
799-
if(engines[i] in template) {
800-
url = template[engines[i]]
801-
gsub(/\{searchTerms\}/, terms, url)
825+
BEGIN {
826+
FS = "\t"
827+
exitStatus = 0
802828
803-
printf("%s\n", url)
804-
} else {
805-
printf("search engine '%s' not found.\n", engines[i]) | "cat >&2"
829+
count = split(engine, engines, ",")
830+
split("", template)
831+
}
806832
807-
exitStatus = sysexits("EX_UNAVAILABLE")
808-
}
833+
{
834+
template[$1] = $2
809835
}
810836
811-
exit exitStatus
812-
}
837+
END {
838+
for(i = 1; i <= count; i++) {
839+
if(engines[i] in template) {
840+
url = template[engines[i]]
841+
gsub(/\{searchTerms\}/, terms, url)
842+
843+
printf("%s\n", url)
844+
} else {
845+
printf("search engine '%s' not found.\n", engines[i]) | "cat >&2"
846+
847+
exitStatus = sysexits("EX_UNAVAILABLE")
848+
}
849+
}
850+
851+
exit exitStatus
852+
}
813853
__EOF__
814854
)
815855

release/.w3mplus/bin/setquickmark

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -589,9 +589,49 @@ case "${#}" in
589589
keyEscape=$(
590590
cat <<-'__EOF__'
591591
592-
BEGIN {
593-
printf("%s", backslash_escape(key))
592+
593+
594+
function backslash_escape(string) {
595+
gsub("\\\\", "\\\\", string)
596+
gsub("\\001", "\\001", string)
597+
gsub("\\002", "\\002", string)
598+
gsub("\\003", "\\003", string)
599+
gsub("\\004", "\\004", string)
600+
gsub("\\005", "\\005", string)
601+
gsub("\\006", "\\006", string)
602+
gsub("\\007", "\\007", string)
603+
gsub("\\010", "\\010", string)
604+
gsub("\\011", "\\011", string)
605+
gsub("\\012", "\\012", string)
606+
gsub("\\013", "\\013", string)
607+
gsub("\\014", "\\014", string)
608+
gsub("\\015", "\\015", string)
609+
gsub("\\016", "\\016", string)
610+
gsub("\\017", "\\017", string)
611+
gsub("\\020", "\\020", string)
612+
gsub("\\021", "\\021", string)
613+
gsub("\\022", "\\022", string)
614+
gsub("\\023", "\\023", string)
615+
gsub("\\024", "\\024", string)
616+
gsub("\\025", "\\025", string)
617+
gsub("\\026", "\\026", string)
618+
gsub("\\027", "\\027", string)
619+
gsub("\\030", "\\030", string)
620+
gsub("\\031", "\\031", string)
621+
gsub("\\032", "\\032", string)
622+
gsub("\\033", "\\033", string)
623+
gsub("\\034", "\\034", string)
624+
gsub("\\035", "\\035", string)
625+
gsub("\\036", "\\036", string)
626+
gsub("\\037", "\\037", string)
627+
gsub("\\177", "\\177", string)
628+
629+
return string
594630
}
631+
632+
BEGIN {
633+
printf("%s", backslash_escape(key))
634+
}
595635
__EOF__
596636
)
597637
key=$(awk -v "key=${key}" -- "${keyEscape}")

release/.w3mplus/bin/setusercommand

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -434,20 +434,60 @@ case "${#}" in
434434
awkScript=$(
435435
cat <<-'__EOF__'
436436
437-
BEGIN {
438-
FS = "\t"
439-
esKey = backslash_escape(key)
440-
esCommand = backslash_escape(command)
441-
}
442437
443-
$1 != esKey || $2 != esCommand {
444-
printf("%s\n", $0)
445-
}
446438
447-
END {
448-
printf("%s\t%s\t%s\n", esKey, esCommand, date)
449-
printf("%s\t%s\t%s\n", esKey, esCommand, date) >>add
439+
function backslash_escape(string) {
440+
gsub("\\\\", "\\\\", string)
441+
gsub("\\001", "\\001", string)
442+
gsub("\\002", "\\002", string)
443+
gsub("\\003", "\\003", string)
444+
gsub("\\004", "\\004", string)
445+
gsub("\\005", "\\005", string)
446+
gsub("\\006", "\\006", string)
447+
gsub("\\007", "\\007", string)
448+
gsub("\\010", "\\010", string)
449+
gsub("\\011", "\\011", string)
450+
gsub("\\012", "\\012", string)
451+
gsub("\\013", "\\013", string)
452+
gsub("\\014", "\\014", string)
453+
gsub("\\015", "\\015", string)
454+
gsub("\\016", "\\016", string)
455+
gsub("\\017", "\\017", string)
456+
gsub("\\020", "\\020", string)
457+
gsub("\\021", "\\021", string)
458+
gsub("\\022", "\\022", string)
459+
gsub("\\023", "\\023", string)
460+
gsub("\\024", "\\024", string)
461+
gsub("\\025", "\\025", string)
462+
gsub("\\026", "\\026", string)
463+
gsub("\\027", "\\027", string)
464+
gsub("\\030", "\\030", string)
465+
gsub("\\031", "\\031", string)
466+
gsub("\\032", "\\032", string)
467+
gsub("\\033", "\\033", string)
468+
gsub("\\034", "\\034", string)
469+
gsub("\\035", "\\035", string)
470+
gsub("\\036", "\\036", string)
471+
gsub("\\037", "\\037", string)
472+
gsub("\\177", "\\177", string)
473+
474+
return string
450475
}
476+
477+
BEGIN {
478+
FS = "\t"
479+
esKey = backslash_escape(key)
480+
esCommand = backslash_escape(command)
481+
}
482+
483+
$1 != esKey || $2 != esCommand {
484+
printf("%s\n", $0)
485+
}
486+
487+
END {
488+
printf("%s\t%s\t%s\n", esKey, esCommand, date)
489+
printf("%s\t%s\t%s\n", esKey, esCommand, date) >>add
490+
}
451491
__EOF__
452492
)
453493
awkv_escape 'add' "${tmpDir}/add"

0 commit comments

Comments
 (0)