📄 scancode.inc.sh
字号:
#!/bin/shgawk --file ../lib/kbde.awk --source 'function PrintLabel(String){ NeedT = 0; # I can not use ":" directly, because it field separator # So, i need use T if (String ~ "[Cc][Oo][Ll][Oo][Nn]") { NeedT = 1; String = ":"; } # If string has \\ replace it with \\e gsub("\\\\", "\\e", String); num = split(String, Array, "[[:blank:]]"); if (num == 0) return; # Empty string, do nothing # If we have whitespace inside I want words on different lines # So, i need use T if (num > 1) NeedT = 1; if (NeedT) { printf "T{\n"; for (i = 1; i <= num; i++) { printf "%s\n", Array[i]; } printf "T}"; } else { # When T is not used, I have to escape -,+ and _ if (substr(String, 1, 1) in ArrayForEscape) printf "\\&"; printf "%s", String; }}function PrintCode(String){ if (String ~ "-NONE-") { printf "%s", String; return } num = split(String, Array, "[[:blank:]]") if (num == 0) return; # empty string, do nothing if (num == 1) { printf "0x%s", Array[1]; } else if (num == 2) { printf "0x%s 0x%s", Array[1], Array[2]; } else { # More, than 2, need newline(s) printf "T{\n"; for (i = 1; i <= num; i += 2) { # May be I print one element after array boundary, # but awk promise it will be empty, so it is ok printf("0x%s 0x%s\n", Array[i], Array[i+1]); } printf "T}" }}function PrintSeparator(){ printf ":"}function print_man_table(){ ArrayForEscape["-"] = ""; ArrayForEscape["_"] = ""; ArrayForEscape["="] = ""; for (Define = 1; int(Define) <= int(MaxDefine); Define = Define + 1) { Name = Names[Define]; if (Name != "") { Make = Makes[Define]; Break = Breaks[Define]; Label = Labels[Define]; AddLabel = AddLabels[Define]; printf "%s", Name; PrintSeparator(); printf "%s", Define; PrintSeparator(); PrintLabel(Label); PrintSeparator(); PrintLabel(AddLabel); PrintSeparator(); PrintCode(Make); PrintSeparator(); PrintCode(Break); print ""; # Newline } }}function print_func(){ print_man_table();}' || exitexit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -