--- /dev/null
+#include <cstdio>
+#include <iostream>
+#include <string>
+#include <vector>
+
+using namespace std;
+
+typedef vector<string> words_t;
+
+void printAndClearWords(words_t& words)
+{
+ bool firstparen=false, noparen=true;
+ if(words.size() > 1) {
+ for(words_t::iterator iter = words.begin() ; iter != words.end(); ++iter) {
+ if(iter->find('(') != string::npos)
+ noparen=false;
+
+ if(iter != words.begin())
+ cout<<" ";
+ else if((*iter)[0]=='(') {
+ iter->assign(iter->c_str()+1);
+ firstparen=1;
+ }
+
+ if((firstparen || noparen) && iter + 1 == words.end() && (*iter)[iter->length()-1]==')')
+ iter->resize(iter->length()-1);
+
+ cout<<*iter;
+ }
+ cout<<"\n";
+ }
+ words.clear();
+}
+
+int main()
+{
+ int c;
+ words_t words;
+ string word;
+ bool inword=false;
+ int offset;
+ while((c=getchar())!=EOF) {
+ if(inword) {
+ if(isspace(c) || c=='.' || c==',') {
+ int offset=0;
+ if(word[0]=='(') {
+ offset = 1;
+ }
+
+ if(word=="van" || word=="der" || word =="den" || (word.size() > 1 +offset && isupper(word[offset]) && islower(word[offset+1]))) {
+ words.push_back(word);
+ }
+ else
+ printAndClearWords(words);
+
+ if(ispunct(c))
+ printAndClearWords(words);
+
+ word.clear();
+ inword=false;
+ }
+ else
+ word.append(1, (char)c);
+ continue;
+ }
+
+ if(!isspace(c)) {
+ word.append(1, (char) c);
+ inword=true;
+ }
+ }
+}
+
+
--- /dev/null
+#!/bin/sh
+(./extract < pdns.txt | grep -v ^The | egrep -iv '>|\]|;|:|!|NameIndex|Fancy Record|Name \(Name|Cloos|Considerations in|Webserver|Webforwards|On Mac|Operation On|Scripting as|Security as|Press ok|Caution|Enable|Time to|System|Compilation|Backend|Unix|Windows|sql|Library|Linux|License|Zone|Slave|Warning|Jabber|PowerDNS|Editor|Microsoft|Thanks|CoolThreads|Null|^Note|^See |UltraSPARC|^Sender|Solaris|Universal|Naming Authority|Random|Rain Forest|Query|Active|Recursion|Questions|Prerelease|Preq|Pipebackend|Pipe backend|Press Add|BindBackend|Release|Miscell|Packet|Open Source|Open Root|OpenBSD|Responsible|Download|Debian|Oracle|Daemon|Gladman List|Gladman Since|FreeBSD|Dynamic|Authoritative|Added Generic|Algorithm|Answers Each|Language Settings|Guardian|Statistics|Hardware|Bert Hubert|Bind Backend|Secure|Credits|Configuring|Socket|Worldnic'
+echo James H. Cloos Jr
+echo Tsjoi Tsim
+echo Rene van der Meijden
+echo Marc Laros
+echo Hans Veldhuijzen van Zanten
+echo Remco van Mook ) | sort -u | # perl -pi -e 's/^(.*) (\w+)$/$2 $1/g' | sort | perl -pi -e 's/^(\w+) (.*)$/$2 $1/g' |
+sed 's/$/,/g' | tr "\n" " " | sed 's/, $//' | sed 's/ We, /, /'
+
<para>
This release was made possible by the help of Wichert Akkerman, Winfried Angele, Arnoud Bakker (Fox-IT), Niels Bakker (no relation!),
Leo Baltus (Nederlandse Publieke Omroep), Marco Davids (SIDN), David Gavarret (Neuf Cegetel), Peter Gervai, Marcus Goller (UPC),
- Matti Hiljanen (Saunalahti/Elisa), Ruben Kerkhoff,
- Alex Kiernan, Amit Klein (Trusteer), Kenneth Marshall (Rice University), Thomas Rietz, Marcus Rueckert (OpenSUSE), Augie Schwer (Sonix), Sten Spans (Bit), Stefan Schmidt (Freenet.de),
+ Matti Hiljanen (Saunalahti/Elisa), Ruben Kerkhof,
+ Alex Kiernan, Amit Klein (Trusteer), Kenneth Marshall (Rice University), Thomas Rietz, Marcus Rueckert (OpenSUSE), Augie Schwer (Sonix), Sten Spans (Bit), Stefan Schmidt (Freenet),
Kai Storbeck (xs4all),
- Alex Trull, Andrew Turnbull (No Wires LTD) and Aaron Thompson, and many more who filed bugs anonymously, or who we forgot to mention.
+ Alex Trull, Andrew Turnbull (No Wires) and Aaron Thompson, and many more who filed bugs anonymously, or who we forgot to mention.
</para>
<para>
Security related issues:
<listitem>
<para>
Various fixes for modern G++ versions, most spotted by Marcus Rueckert (commits C964, C965, C1028, C1052), and
- Ruben Kerkhoff (c1136, closing t175).
+ Ruben Kerkhof (c1136, closing t175).
</para>
</listitem>
<listitem>
<itemizedlist>
<listitem>
<para>
- All SQL queries in the generic backends are now available for configuration. (Martin Klebermass/bert hubert).
+ All SQL queries in the generic backends are now available for configuration. (Martin Klebermass, bert hubert).
See <xref linkend="generic-mypgsql-backends">.
</para>
</listitem>
<listitem><para>Dave Aaldering</para></listitem>
<listitem><para>Wichert Akkerman</para></listitem>
<listitem><para>Antony Antony</para></listitem>
- <listitem><para>Mike Benoit (NetNation Communication Inc.)</para></listitem>
+ <listitem><para>Mike Benoit (NetNation Communication Inc)</para></listitem>
<listitem><para>Peter van Dijk</para></listitem>
<listitem><para>Koos van den Hout</para></listitem>
<listitem><para>Andre Koopal</para></listitem>