1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
## 01_debctrl_filter.diff by Brian Nelson <pyro@debian.org>
##
##
--- a/Makefile.am
+++ b/Makefile.am
@@ -163,6 +163,7 @@
### Add the .info file your filter comes with
optfiles = \
+ modules/filter/debctrl-filter.info\
modules/filter/email-filter.info\
modules/filter/tex-filter.info\
modules/filter/sgml-filter.info\
@@ -176,6 +177,7 @@
modules/filter/modes/html.amf \
modules/filter/modes/sgml.amf \
modules/filter/modes/tex.amf \
+ modules/filter/modes/debctrl.amf \
modules/filter/modes/email.amf \
modules/filter/modes/ccpp.amf \
modules/filter/modes/none.amf \
@@ -193,6 +195,7 @@
### starting with file containing filter class definition followed by
### file containing filter member implementation.
libaspell_la_SOURCES +=\
+ modules/filter/debctrl.cpp\
modules/filter/email.cpp\
modules/filter/tex.cpp\
modules/filter/sgml.cpp\
@@ -207,10 +210,14 @@
### Add name of filter library containing your filter. Name always
### must look like lib<filtername>-filter.la see development manual
-filter_LTLIBRARIES = email-filter.la tex-filter.la\
+filter_LTLIBRARIES = debctrl-filter.la email-filter.la tex-filter.la\
sgml-filter.la context-filter.la\
nroff-filter.la texinfo-filter.la
+debctrl_filter_la_SOURCES = modules/filter/debctrl.cpp
+debctrl_filter_la_LIBADD = libaspell.la
+debctrl_filter_la_LDFLAGS = ${filter_ldflags}
+
email_filter_la_SOURCES = modules/filter/email.cpp
email_filter_la_LIBADD = libaspell.la
email_filter_la_LDFLAGS = ${filter_ldflags}
--- /dev/null
+++ b/modules/filter/debctrl-filter.info
@@ -0,0 +1,9 @@
+# debctrl filter option file
+
+#This Filter is usable with the following version(s) of Aspell
+ASPELL >=0.51
+
+#This line will be printed when typing `Aspell help debctrl
+DESCRIPTION filter for Debian packaging control files
+
+STATIC filter
--- /dev/null
+++ b/modules/filter/debctrl.cpp
@@ -0,0 +1,76 @@
+// This file is part of The New Aspell
+//
+// Copyright (C) 2005 by Brian Nelson, based on the email filter,
+// Copyright (C) 2001 by Kevin Atkinson under the GNU LGPL license
+// version 2.0 or 2.1. You should have received a copy of the LGPL
+// license along with this library if you did not you can find it at
+// http://www.gnu.org/.
+
+#include "settings.h"
+
+#include "indiv_filter.hpp"
+#include "convert.hpp"
+#include "config.hpp"
+#include "indiv_filter.hpp"
+
+namespace {
+
+ using namespace acommon;
+
+ class DebctrlFilter : public IndividualFilter
+ {
+ bool prev_newline;
+ bool in_field;
+
+ public:
+ PosibErr<bool> setup(Config *);
+ void reset();
+ void process(FilterChar * &, FilterChar * &);
+ };
+
+ PosibErr<bool> DebctrlFilter::setup(Config * opts)
+ {
+ name_ = "debctrl-filter";
+ order_num_ = 0.90;
+ reset();
+ return true;
+ }
+
+ void DebctrlFilter::reset()
+ {
+ prev_newline = true;
+ in_field = false;
+ }
+
+ void DebctrlFilter::process(FilterChar * & str, FilterChar * & end)
+ {
+ FilterChar * line_begin = str;
+ FilterChar * cur = str;
+
+ while (cur < end) {
+ if (prev_newline && *cur != ' ')
+ in_field = true;
+
+ if (*cur == '\n') {
+ if (in_field) {
+ for (FilterChar * i = line_begin; i != cur; ++i)
+ *i = ' ';
+ }
+ line_begin = cur;
+ in_field = false;
+ prev_newline = true;
+ } else {
+ prev_newline = false;
+ }
+ ++cur;
+ }
+ if (in_field)
+ for (FilterChar * i = line_begin; i != cur; ++i)
+ *i = ' ';
+ }
+}
+
+C_EXPORT
+IndividualFilter * new_aspell_debctrl_filter() {
+ return new DebctrlFilter;
+}
--- /dev/null
+++ b/modules/filter/modes/debctrl.amf
@@ -0,0 +1,8 @@
+MODE debctrl
+
+ASPELL >=0.60
+
+DESCRIPTION mode for Debian packaging control files
+
+FILTER url
+FILTER debctrl
--- a/prog/aspell.cpp
+++ b/prog/aspell.cpp
@@ -203,10 +203,11 @@
{'e', "mode=email", N_("enter Email mode.")},
{'H', "mode=html", N_("enter HTML mode.")},
{'t', "mode=tex", N_("enter TeX mode.")},
- {'n', "mode=nroff", N_("enter Nroff mode.")}
+ {'n', "mode=nroff", N_("enter Nroff mode.")},
+ {'D', "mode=debctrl", N_("enter Debctrl mode.")}
};
-static const ModeAbrv * mode_abrvs_end = mode_abrvs + 4;
+static const ModeAbrv * mode_abrvs_end = mode_abrvs + 5;
const PossibleOption * find_option(char c) {
const PossibleOption * i = possible_options;
|