diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/awk.tl | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/share/txr/stdlib/awk.tl b/share/txr/stdlib/awk.tl index b1e9f509..7c6ae504 100644 --- a/share/txr/stdlib/awk.tl +++ b/share/txr/stdlib/awk.tl @@ -53,25 +53,19 @@ (defmeth sys:awk-state rec-to-f (self) (cond - ((and (equal self.rec "") (not self.kfs)) - (set self.fields nil - self.nf 0)) (self.fs (when self.ft (throwf 'eval-error "awk: both fs and ft set")) - (set self.fields (split-str self.rec self.fs self.kfs) - self.nf (length self.fields))) + (if (and (not self.kfs) (equal self.rec "")) + (set self.fields nil + self.nf 0) + (set self.fields (split-str self.rec self.fs self.kfs) + self.nf (length self.fields)))) (self.ft (set self.fields (tok-str self.rec self.ft self.kfs) self.nf (length self.fields))) - ((let ((trimmed (trim-str self.rec))) - (cond - ((and (equal trimmed "") (not self.kfs)) - (set self.fields nil - self.nf 0)) - (t - (set self.fields (split-str trimmed #/[ \t\n]+/ self.kfs) - self.nf (length self.fields)))))))) + ((set self.fields (tok-str self.rec #/[^ \t\n]+/ self.kfs) + self.nf (length self.fields))))) (defmeth sys:awk-state f-to-rec (self) (set self.rec `@{self.fields self.ofs}`)) |