# This file is part of mailfromd. # Copyright (C) 2007, 2008 Sergey Poznyakoff # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . BEGIN { header[nh++] = "-*- buffer-read-only: t -*- vi: set ro:" header[nh++] = "THIS FILE IS GENERATED AUTOMATICALLY. PLEASE DO NOT EDIT." } state == 0 && /typedef enum mf_exception_code/ { state = 1; next } state == 0 && /TEMPLATE/ { state = 2; if (NF > 1) { if (NF == 2) { for (i = 0; i < nh; i++) print $2 " " header[i] } else { for (i = 0; i < nh; i++) print $2 " " header[i] " " $3 } } next } state == 0 { next } state == 1 && $1 == "mf_exception_count" { state = 0 } state == 1 { if (match($1, "mfe_(.+),", a)) status_code[code++] = a[1]; } state == 2 { if (match($0, "%{(.*)%}", a)) { for (i = 0; i < code; i++) { s = gensub("%NAME", status_code[i], "g", a[1]); s = gensub("%CODE", i, "g", s) print s } } else print }