Fixed bug in dislines.awk
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Wed, 8 Oct 2014 16:18:39 +0000 (18:18 +0200)
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>
Wed, 8 Oct 2014 16:18:39 +0000 (18:18 +0200)
dislines.awk

index 04c3312..fd8361e 100755 (executable)
@@ -23,8 +23,7 @@
 # SOFTWARE.
 
 # This script implements a subset of the dislines system (see
-# http://www.danielclemente.com/dislines/). Everything except comment
-# blocks and repetition of the last tag is supported.
+# http://www.danielclemente.com/dislines/).
 
 function splittags (tagstr) {
     split(tagstr, tags, ",")
@@ -41,32 +40,32 @@ function wrtags(string, tgs) {
 function writetags (str) {
     wrtags(str, tags)
 }
-function writealltags(str) {
-    wrtags(str, knowntags)
+function writealltags(strn) {
+    wrtags(strn, knowntags)
 }
 
-/^@+}/ && indic==1{ indic = 0 } # End of a block
+indic==1 && /^@+}/ { indic = 0 } # End of a block
 
 indic==1 { writetags($0) }
 
-match($0, /^@+([a-z][a-z,]*){[ ]*(.*)$/, tagarr) && indic!=1{
+indic!=1 && match($0, /^@+([a-z][a-z,]*){[ ]*(.*)$/, tagarr) {
 # matches beginning of a block
     indic = 1
     splittags(tagarr[1])
     writetags(tagarr[2])
 }
-
-match($0, /^@+([a-z][a-z,]*) (.*)$/, tagarr) && indic!=1 {
+indic!=1 && match($0, /^@+\"+ (.*)$/, tagarr) { writetags(tagarr[1])}
+indic!=1 && match($0, /^@+([a-z][a-z,]*) (.*)$/, tagarr) {
     splittags(tagarr[1])
     writetags(tagarr[2])
 }
 
-match($0, /^@+ (.*)$/, tagarr) && indic!=1 {
-    common=common $0
+indic!=1 && match($0, /^@+ (.*)$/, tagarr) {
+    common=common tagarr[1]
     writealltags(tagarr[1])
 }
 
-($0 !~ /^@/) && indic!=1 {
+indic!=1 && ($0 !~ /^@/) {
     common=common $0
     writealltags($0)
 }