1 From: Christian Merkwirth
2 Subject: dictionary support for nedit
6 Dictionary/demo.cc | 35
7 Dictionary/dict_todo.txt | 33
8 Dictionary/dictionary.nm | 391 +
9 Dictionary/dicts/cpp.dict | 146
10 Dictionary/dicts/english_top.dict | 9108 +++++++++++++++++++++++++++++++++++
11 Dictionary/dicts/german.dict | 4059 +++++++++++++++
12 Dictionary/dicts/german_latex.dict | 1486 +++++
13 Dictionary/dicts/german_top.dict | 9532 +++++++++++++++++++++++++++++++++++++
14 Dictionary/dicts/html.dict | 1
15 Dictionary/dicts/latex.dict | 304 +
16 Dictionary/dotnedit | 41
17 Dictionary/readme.html | 284 +
18 Dictionary/setup.sh | 13
19 source/Makefile.common | 1
20 source/Makefile.dependencies | 4
21 source/built-ins.h | 5
22 source/dictionary.c | 407 +
23 source/dictionary.h | 21
24 source/highlightData.c | 2
27 source/ternary_search_tree.c | 507 +
28 source/ternary_search_tree.h | 11
31 25 files changed, 26661 insertions(+), 6 deletions(-)
33 diff --quilt /dev/null new/Dictionary/demo.cc
35 +++ new/Dictionary/demo.cc
39 +// C++ demo file to test the dictionary features:
40 +// Please go below, type in 'cl' (without quotes) and
46 +// Please type in 'main' or 'fo' somewhere below and press
49 +// then press Ctrl-\ to step through the fields @@@
72 diff --quilt /dev/null new/Dictionary/dictionary.nm
74 +++ new/Dictionary/dictionary.nm
76 +# Macro definition file for the dictionary enhanced version of nedit 5.1.1 and later.
77 +# These macro command will not work without the patched version since all built-in macro
78 +# commands for handling the dictionary are not present in the original version.
80 +# The dictionary can be seen as simply as a collection of (unique) strings, where each
81 +# string has a weight attached that can be increased or decreased. The dictionary allows
82 +# to search for strings just by giving some portion of the beginning of the desired string.
83 +# If this portion is enough to uniquely identify to whole string, the string without
84 +# the beginning portion is returned. If it is not possible to uniquely identify a string,
85 +# one ore more possible completions are returned, sorted by weight. If there is no match
86 +# at all, an empty string is returned. The key point of the dictionary is that it is very
87 +# fast in insertion and retrieval of strings. Also, common sequences are stored only once.
89 +# While these new built-in macro commands are kept very general, all functionality
90 +# for word completion and template expansion is coded in the nedit macro language to
91 +# allow for maximum flexibility and gives users the control over the behaviour of these
92 +# features. E.g., the whole namespace handling is done in the macro definitions in this
94 +# Christian Merkwirth, March 2000
96 +# Set autoSave to "on" (save on Window close/exit), save dictionary after every 16 insertion operations
97 +$dict_auto_save = "on"
98 +$dict_refresh_cycle = 16
99 +dict_save($dict_auto_save, $dict_refresh_cycle)
101 +# global variables for the word completion
108 +# global variables for template expansion
110 +$name_of_last_field = ""
112 +# Return name of current language mode or an empty string for the "Plain" mode
114 + if ($language_mode == "Plain")
117 + namesp = "::" $language_mode "::"
122 +############################################################################################
124 +# Complete word section
126 +############################################################################################
128 +# Get the nearest match from the text before and after the cursor (pretty much like
129 +# the old style complete word macro). Usually, this is presented as first option when
130 +# the new complete word macro is invoked. The return does not return the whole
131 +# completed string, just the part that is needed to fill up the keyString is returned.
132 +define get_nearest_match {
133 + backMatch = search("<" $keyString, $keyStart-1, "backward", "regex")
134 + forwardMatch = search("<" $keyString, $cursor, "regex")
136 + if ((backMatch < 0) && (forwardMatch < 0)) {
140 + backdist = $text_length
142 + backdist = $keyStart-1 - backMatch
144 + if (forwardMatch < 0)
145 + forwarddist = $text_length
147 + forwarddist = forwardMatch - $cursor
149 + if (backdist <= forwarddist)
150 + nearestMatch = backMatch
152 + nearestMatch = forwardMatch
154 + matchEnd = search(">", nearestMatch, "regex")
156 + if ((matchEnd == -1) || (matchEnd == $text_length))
159 + completion = get_range(nearestMatch+length($keyString), matchEnd)
165 +# Define revert to the initial keyString if the user does not accept propesed completion
166 +define revert_to_keystring {
167 + if (($compword_end == $cursor) && ($keyStart > -1)) {
168 + replace_range($keyStart, $cursor, $keyString)
171 + $completedWord = ""
177 +# Insert the completed string at the current position
178 +define insert_completion {
179 + $completedWord = $keyString $1
180 + replace_range($keyStart, $cursor, $completedWord)
181 + $compword_end = $cursor
184 +# Main complete word macro. When invoked, it tries to determine if this the user is looking for
185 +# a completion to a new keyString or if he wants to step through the possible completions to the
186 +# previously given keyString.
188 +# Possible completions are presented in the following order:
190 +# 1) Get the nearest match from the text in the current window (like the old complete_word macro)
191 +# 2) Get #MaxMatches completions from the dictionary, using the language mode specific namespace
192 +# 3) Get #MaxMatches completions from the dictionary, using the global ("Plain") namespace
193 +define complete_word {
197 + newkeyStart = search("<", $cursor, "backward", "regex")
199 + if (($compword_end != $cursor) || (newkeyStart != $keyStart)) { # OK, new keyword, new search
200 + # If there was a successful completion last time, insert this accepted completion
201 + # into the dictionary to reinforce weights. This also enables to learn new words by accepting
202 + # the nearest match. The next time the macro is invoked, this match is inserted into the
204 + if (length($completedWord) > 0) {
205 + if ((dict_is_element($completedWord) > 0) && (!dict_is_element(namespace() $completedWord))) {
206 + # if word exists already in global namespace, but not in specific
207 + dict_insert($completedWord) # do not insert it into language specific namespace
209 + dict_insert(namespace() $completedWord)
213 + $keyStart = newkeyStart
215 + if ($keyStart == -1)
218 + $keyString = get_range($keyStart, $cursor)
220 + if (length($keyString) == 0) {
229 + if ($search_level == 0) {
231 + completion = get_nearest_match()
232 + if (length(completion) > 0) {
233 + insert_completion(completion)
237 + if ($search_level == 1) {
238 + if (length(namespace()) == 0)
241 + completion = dict_complete(namespace() $keyString, MinChars, MaxMatches)
242 + if (length(completion) == 0)
246 + insert_completion(completion)
251 + if ($search_level == 2) {
252 + completion = dict_complete("", MinChars, MaxMatches)
253 + if (length(completion) == 0)
256 + insert_completion(completion)
260 + if ($search_level == 3) {
261 + completion = dict_complete($keyString, MinChars, MaxMatches)
262 + if (length(completion) == 0)
266 + insert_completion(completion)
270 + if ($search_level == 4) {
271 + completion = dict_complete("", MinChars, MaxMatches)
272 + if (length(completion) == 0)
275 + insert_completion(completion)
279 + if (length(completion) == 0) {
280 + revert_to_keystring()
284 +# Insert the current selection into the dictionary
285 +define insert_selection {
286 + dict_insert(namespace() get_selection())
289 +# Scan the current text and insert all words of given length into the dictionary
292 + $completedWord = ""
295 + dict_save("off", -1)
298 + $keyStart = search("<", $keyStart+1, "forward", "regex")
302 + matchEnd = search(">", $keyStart, "forward", "regex")
303 + word = get_range($keyStart, matchEnd)
305 + if (length(word) >= MinChars) {
306 + if ((dict_is_element(word) > 0) && (!dict_is_element(namespace() word))) {
307 + # if word exists already in global namespace, but not in specific
308 + dict_insert(word) # do not insert it into language specific namespace
310 + dict_insert(namespace() word)
316 + dict_save($dict_auto_save, $dict_refresh_cycle)
319 +############################################################################################
321 +# Template expansion section
323 +############################################################################################
325 +# Main routine that is invoked first when the user invokes template expansion.
328 +# 1) Get the abbreviation to expand from the text before the cursor
329 +# 2) Parse this expansion to see if it needs further treatment
330 +# 3) Insert the expansion at the current position
333 + keyStart = search("<", $cursor, "backward", "regex", "wrap")
334 + if (keyStart == -1)
337 + keyString = get_range(keyStart, $cursor)
338 + expansionString = get_expansion(keyString)
340 + if (length(expansionString) == 0) {
345 + expansionString = parse_expansion(expansionString)
347 + replace_range(keyStart, $cursor, expansionString)
349 + if (search_string(expansionString, "(@[\\w/@\\>\\<\\.\\+\\-]+@)", 0, "regex") > 0) {
350 + # if a @@@ exists in the expansion, immediately move the cursor to this position
351 + set_cursor_pos(keyStart)
356 +# Search the dictionary for the given shortcut (given as first argument).
359 +# First look in the namespace of the current language mode, if there is no
360 +# match, also look in global namespace.
361 +define get_expansion {
363 + expansionString = dict_complete("@@@" namespace() keyString ":", 1, 1)
365 + if (length(expansionString) == 0) {
366 + expansionString = dict_complete("@@@" keyString ":", 1, 1)
369 + return expansionString
372 +# parse the expansion string recursively to replace special sequences, given in the form
375 +# The following sequences are recognized:
376 +# @@@ this is a plain placeholder which is left as it is except for the first one that appears,
377 +# which is just removed an the cursor is placed at this position
379 +# @<file@ insert text from file 'file' at this position (even recursively)
380 +# @>temp@ insert text from template 'temp' at this position (even recursively)
381 +define parse_expansion {
382 + expansionString = $1
385 + reg = "(@[\\<\\>\\w\\./\\\\]+@)"
387 + while (search_string(expansionString, reg , start, "forward", "regex") > 0) {
389 + s = search_string(expansionString, "(@\\<[\\w\\./\\\\]+@)", start, "forward", "regex")
390 + # include file given by @<filename@ as subExpansion
393 + filename = substring(expansionString, s+2, end-1)
394 + subExpansion = read_file(filename)
396 + if (length(subExpansion) > 0) {
397 + subExpansion = parse_expansion(subExpansion)
398 + expansionString = replace_substring(expansionString, s, end, subExpansion)
401 + s = search_string(expansionString,"(@\\>[\\w]+@)", start, "forward", "regex")
404 + # expand this subexpression
405 + sub = substring(expansionString, s+2, end-1)
406 + subExpansion = get_expansion(sub)
408 + if (length(subExpansion) > 0) {
409 + subExpansion = parse_expansion(subExpansion)
410 + expansionString = replace_substring(expansionString, s, end, subExpansion)
416 + return expansionString
419 +# Move cursor to next template field
420 +# If a field that looked like @-name@ was filled, we try fill out all other fields @-name@
421 +# with the text of the first one
422 +define goto_next_field {
423 + if ($last_field > 0) {
424 + entryStart = search("<", $cursor, "backward", "regex")
425 + if (entryStart > 0) {
426 + entry = get_range(entryStart, $cursor)
428 + replace_all("@-" $name_of_last_field "@", entry, "forward")
429 + set_cursor_pos(pos)
434 + $last_field = search("(@\\-[\\w]+@)", $cursor, "forward", "regex")
435 + if ($last_field > 0) {
436 + $name_of_last_field = get_range($last_field+2, $search_end-1)
439 + replace("(@[\\w/@\\>\\<\\.\\+\\-]+@)", "", "forward" , "regex")
443 +# Define new expansion (or template, however you like to call it). The text that should be
444 +# inserted must be selected before this routine is called. It then asks for the shortcut (or
445 +# abbreviation) that is assigned to the template. Before the new expansion is inserted into
446 +# the dictionary, we check whether the shortcut is already in use.
447 +define define_expansion {
449 + shortcut = string_dialog("Please enter the shortcut for the selected text" , "OK" , "Dismiss")
451 + if ((length(shortcut) == 0) || ($string_dialog_button == 0) || ($string_dialog_button == 2))
454 + expansionString = dict_complete("@@@" namespace() shortcut ":", 1, 0)
456 + if (length(expansionString) != 0) {
458 + dialog("Warning : Proposed shortcut is already used, please choose another one", "Dismiss")
462 + dict_insert("@@@" namespace() shortcut ":" get_selection())
467 diff --quilt /dev/null new/Dictionary/dicts/cpp.dict
469 +++ new/Dictionary/dicts/cpp.dict
471 +#Word completion for C++
473 +"::C++::break", 1000
475 +"::C++::catch", 1000
476 +"::C++::class", 1000
477 +"::C++::const", 1000
478 +"::C++::continue", 1000
479 +"::C++::default", 1000
480 +"::C++::define", 1000
481 +"::C++::delete", 1000
482 +"::C++::double", 1000
485 +"::C++::explicit", 1000
486 +"::C++::extern", 1000
487 +"::C++::float", 1000
490 +"::C++::friend", 1000
492 +"::C++::include", 1000
493 +"::C++::inline", 1000
495 +"::C++::iostream", 1000
498 +"::C++::malloc", 1000
500 +"::C++::namespace", 1000
502 +"::C++::operator", 1000
503 +"::C++::private", 1000
504 +"::C++::protected", 1000
505 +"::C++::public", 1000
506 +"::C++::realloc", 1000
507 +"::C++::register", 1000
508 +"::C++::return", 1000
509 +"::C++::short", 1000
510 +"::C++::static", 1000
511 +"::C++::stdio", 1000
512 +"::C++::stdlib", 1000
513 +"::C++::struct", 1000
514 +"::C++::switch", 1000
515 +"::C++::template", 1000
516 +"::C++::throw", 1000
518 +"::C++::typedef", 1000
519 +"::C++::typename", 1000
520 +"::C++::union", 1000
521 +"::C++::unsigned", 1000
522 +"::C++::virtual", 1000
524 +"::C++::volatile", 1000
525 +"::C++::while", 1000
527 +#Word completion for C
532 +"::C::continue", 1000
533 +"::C::default", 1000
543 +"::C::include", 1000
549 +"::C::realloc", 1000
550 +"::C::register", 1000
558 +"::C::typedef", 1000
560 +"::C::unsigned", 1000
562 +"::C::volatile", 1000
566 +"@@@::C++::cl:class @-name@ {
575 +"@@@::C++::str:struct @@@ {
578 +"@@@::C++::wh:while(@@@)
582 +"@@@::C++::fo:for(@@@;@@@;@@@)
586 +"@@@::C++::if:if(@@@)
590 +"@@@::C++::main:int main(int argc, char** argv)
597 +"@@@::C::str:struct @@@ {
600 +"@@@::C::wh:while(@@@)
604 +"@@@::C::fo:for(@@@;@@@;@@@)
612 +"@@@::C::main:int main(int argc, char** argv)
617 diff --quilt /dev/null new/Dictionary/dicts/english_top.dict
619 +++ new/Dictionary/dicts/english_top.dict
1463 +"Hewlett-Packard's"
2556 +"Telecommunications"
3128 +"application-specific"
4147 +"context-sensitive"
4527 +"desktop-publishing"
5410 +"fourth-generation"
5935 +"industry-standard"
6806 +"network-management"
7529 +"project-management"
8233 +"secretary-general"
8993 +"telecommunications"
9091 +"three-dimensional"
9729 diff --quilt /dev/null new/Dictionary/dicts/german.dict
9731 +++ new/Dictionary/dicts/german.dict
9752 +"Abweichungen", 122
9762 +"Adressierung", 102
9781 +"Alternativen", 151
9788 +"Andererseits", 277
9793 +"Anforderungen", 621
9811 +"Anrufbeantworter", 192
9828 +"Anwendungen", 1988
9836 +"Applikationen", 1296
9841 +"Arbeitsplatz", 146
9842 +"Arbeitsspeicher", 211
9843 +"Arbeitsweise", 196
9844 +"Architecture", 119
9867 +"Aufmerksamkeit", 112
9875 +"Aufzeichnung", 128
9887 +"Auslieferung", 127
9901 +"Auswirkungen", 178
9947 +"Beispielprogramm", 149
9948 +"Beispielsweise", 227
9959 +"Berechnungen", 169
9965 +"Berichtigungen", 125
9971 +"Beschleunigung", 115
9972 +"Beschreibung", 515
9974 +"Besonderheit", 200
9975 +"Besonderheiten", 165
9979 +"Bestandteile", 195
9982 +"Bestimmungen", 111
9991 +"Betriebssystem", 1395
9992 +"Betriebssysteme", 544
9993 +"Betriebssystemen", 265
9994 +"Betriebssystems", 353
10001 +"Bezeichnung", 425
10003 +"Bezugsquelle", 141
10005 +"Bibliotheken", 286
10009 +"Bildbearbeitung", 194
10015 +"Bildpunkten", 362
10016 +"Bildschirm", 1407
10017 +"Bildschirms", 109
10018 +"Bildschirmspeicher", 113
10019 +"Bildspeicher", 251
10020 +"Bildverarbeitung", 167
10021 +"Bildwiederholfrequenz", 146
10022 +"Bildwiederholrate", 109
10048 +"Braunschweig", 174
10109 +"Communication", 109
10110 +"Communications", 107
10116 +"Computergrafik", 120
10127 +"Coprozessor", 315
10131 +"Corporation", 146
10153 +"Darstellung", 971
10158 +"Dateimanager", 191
10160 +"Dateisystem", 202
10163 +"Datenaustausch", 316
10165 +"Datenbanken", 685
10167 +"Datendurchsatz", 123
10168 +"Datenkompression", 121
10170 +"Datenmengen", 230
10173 +"Datensicherung", 123
10175 +"Datenstruktur", 151
10176 +"Datenstrukturen", 156
10177 +"Datentransfer", 208
10178 +"Datentransferrate", 212
10189 +"Definitionen", 102
10190 +"Deklaration", 102
10210 +"Deutschland", 956
10212 +"Development", 196
10218 +"Dialogboxen", 208
10242 +"Diskettenlaufwerk", 130
10246 +"Distributor", 276
10250 +"Dokumentation", 1269
10256 +"Doppelklick", 217
10271 +"Druckertreiber", 166
10297 +"Eigenschaft", 244
10298 +"Eigenschaften", 647
10314 +"Einrichtung", 195
10316 +"Einschalten", 169
10318 +"Einstellung", 472
10319 +"Einstellungen", 612
10325 +"Electronics", 104
10341 +"Entscheidung", 270
10342 +"Entsprechend", 152
10344 +"Entwickler", 1360
10345 +"Entwicklern", 144
10346 +"Entwicklung", 1313
10347 +"Entwicklungen", 178
10348 +"Entwicklungssystem", 111
10349 +"Entwicklungsumgebung", 323
10351 +"Environment", 124
10358 +"Erfahrungen", 271
10362 +"Ergebnissen", 121
10371 +"Erwartungen", 155
10372 +"Erweiterung", 494
10373 +"Erweiterungen", 531
10418 +"Fehlerkorrektur", 164
10419 +"Fehlermeldung", 322
10420 +"Fehlermeldungen", 181
10422 +"Fehlersuche", 148
10433 +"Festplatte", 1889
10434 +"Festplatten", 688
10465 +"Fortschritt", 141
10484 +"Funktionen", 3022
10485 +"Funktionsumfang", 344
10486 +"Funktionsweise", 110
10500 +"Gegenstelle", 137
10505 +"Gelegenheit", 217
10507 +"Genauigkeit", 193
10508 +"Genehmigung", 100
10513 +"Geschwindigkeit", 1289
10514 +"Geschwindigkeiten", 123
10515 +"Gesellschaft", 187
10524 +"Gleichzeitig", 132
10531 +"Grafikkarte", 757
10532 +"Grafikkarten", 537
10533 +"Grafikmodus", 146
10543 +"Grundausstattung", 130
10545 +"Grundfarben", 100
10573 +"Hauptplatine", 104
10574 +"Hauptprogramm", 141
10575 +"Hauptspeicher", 768
10585 +"Herausgeber", 115
10589 +"Hersteller", 3043
10590 +"Herstellern", 231
10591 +"Herstellers", 282
10592 +"Herstellung", 230
10602 +"Hilfsmittel", 155
10607 +"Hintergrund", 700
10613 +"Hostadapter", 477
10634 +"Implementation", 196
10635 +"Implementierung", 334
10638 +"Inbetriebnahme", 125
10644 +"Information", 787
10645 +"Informationen", 2201
10650 +"Inhaltsverzeichnis", 149
10652 +"Initialisierung", 264
10655 +"Insbesondere", 196
10658 +"Installation", 1815
10659 +"Installationsprogramm", 198
10663 +"Instruments", 234
10665 +"Integration", 501
10667 +"Intelligenz", 183
10669 +"Interactive", 123
10670 +"Interessant", 180
10672 +"Interessenten", 133
10675 +"International", 213
10677 +"Interpolation", 111
10678 +"Interpreter", 193
10687 +"Jahresabonnement", 108
10731 +"Klassenbibliothek", 197
10732 +"Klassenbibliotheken", 105
10742 +"Kombination", 496
10743 +"Kombinationen", 117
10747 +"Kommandozeile", 142
10748 +"Kommunikation", 800
10750 +"Komponenten", 657
10751 +"Kompression", 394
10753 +"Konfiguration", 801
10754 +"Konfigurationen", 101
10755 +"Konkurrenten", 283
10758 +"Konstruktion", 151
10765 +"Kontrollfeld", 176
10767 +"Konvertierung", 182
10770 +"Kooperation", 123
10771 +"Koordinaten", 208
10777 +"Korrespondenz", 112
10786 +"Kundenkonto", 102
10793 +"Kurzmeldungen", 388
10804 +"Laserdrucker", 174
10811 +"Lautsprecher", 141
10815 +"Leerzeichen", 124
10824 +"Lesersprechstunde", 101
10833 +"Lieferumfang", 1079
10878 +"Makrosprache", 143
10885 +"Manipulation", 175
10889 +"Manuskripte", 100
10901 +"Massenspeicher", 101
10904 +"Mathematica", 171
10913 +"Mechanismen", 178
10914 +"Mechanismus", 218
10958 +"Mitarbeiter", 334
10962 +"Mittelpunkt", 107
10965 +"Mittlerweile", 177
10987 +"Motherboard", 233
10988 +"Motherboards", 125
10994 +"Multitasking", 306
11004 +"Nachrichten", 1049
11043 +"Normalerweise", 150
11049 +"Notwendigkeit", 112
11086 +"Operationen", 346
11088 +"Optimierung", 231
11095 +"Organisation", 170
11096 +"Orientierung", 114
11115 +"Partitionen", 157
11122 +"Performance", 1061
11143 +"Plattenplatz", 129
11145 +"Plattformen", 356
11170 +"Presentation", 212
11173 +"Printserver", 133
11184 +"Professional", 304
11188 +"Programmbeispiele", 354
11189 +"Programmcode", 116
11191 +"Programmen", 1205
11193 +"Programmieren", 170
11194 +"Programmierer", 1071
11195 +"Programmiersprache", 391
11196 +"Programmiersprachen", 197
11197 +"Programmierung", 986
11198 +"Programming", 250
11200 +"Programmstart", 105
11218 +"Prozessoren", 724
11254 +"Realisierung", 134
11256 +"Rechenleistung", 245
11278 +"Registrierung", 137
11280 +"Reihenfolge", 437
11340 +"Schnittstelle", 1331
11341 +"Schnittstellen", 718
11345 +"Schreibtisch", 160
11354 +"Schwerpunkt", 129
11355 +"Schwierigkeiten", 542
11421 +"Sonderzeichen", 146
11425 +"Soundkarten", 183
11437 +"Speicherbedarf", 160
11438 +"Speicherbereich", 201
11439 +"Speicherbereiche", 101
11441 +"Speicherplatz", 260
11443 +"Speicherung", 177
11444 +"Speicherverwaltung", 248
11447 +"Spezifikation", 189
11454 +"Spracherkennung", 122
11466 +"Startadresse", 105
11475 +"Steckkarten", 108
11493 +"Stromversorgung", 103
11512 +"Synchronisation", 112
11524 +"Tabellenkalkulation", 309
11531 +"Taktfrequenz", 315
11537 +"Tastendruck", 149
11538 +"Tastenkombination", 101
11545 +"Technologie", 225
11546 +"Technologies", 175
11554 +"Telefonleitung", 100
11555 +"Telefonnetz", 151
11556 +"Telefonnummer", 127
11557 +"Telefonnummern", 113
11559 +"Telekommunikation", 150
11566 +"Terminalprogramm", 180
11571 +"Testkandidaten", 163
11572 +"Testprogramm", 145
11578 +"Textdateien", 123
11585 +"Textverarbeitung", 656
11586 +"Textverarbeitungen", 102
11599 +"Tintenstrahldrucker", 110
11611 +"Transferrate", 241
11612 +"Transferraten", 113
11641 +"Umschaltung", 116
11656 +"Unternehmen", 437
11657 +"Unterscheidung", 122
11658 +"Unterschied", 601
11659 +"Unterschiede", 506
11660 +"Unterthema", 2069
11677 +"Veranstaltung", 111
11678 +"Verarbeitung", 196
11679 +"Verbesserung", 150
11680 +"Verbesserungen", 232
11681 +"Verbindung", 1602
11682 +"Verbindungen", 513
11683 +"Verbindungsaufbau", 150
11684 +"Verbreitung", 280
11686 +"Vergangenheit", 184
11694 +"Verschieben", 138
11697 +"Versionsnummer", 159
11704 +"Verwendung", 1003
11705 +"Verzeichnis", 573
11706 +"Verzeichnisse", 275
11709 +"Videorecorder", 102
11711 +"Videosignal", 111
11728 +"VisualBASIC", 357
11731 +"Vollversion", 193
11734 +"Voraussetzung", 305
11735 +"Voraussetzungen", 183
11736 +"Vorbereitung", 163
11738 +"Vordergrund", 286
11742 +"Vorgehensweise", 142
11747 +"Vorstellung", 212
11754 +"Wahrscheinlichkeit", 131
11757 +"Warteschlange", 100
11765 +"Wechselplatte", 138
11766 +"Wechselplatten", 186
11772 +"Weiterentwicklung", 148
11805 +"Wirklichkeit", 141
11808 +"Wissenschaft", 109
11813 +"WordPerfect", 605
11819 +"Workstation", 293
11820 +"Workstations", 327
11837 +"Zeichensatz", 219
11839 +"Zeichnungen", 138
11843 +"Zeilenfrequenz", 136
11851 +"Zivadinovic", 139
11858 +"Zugriffsrechte", 113
11859 +"Zugriffszeit", 207
11864 +"Zusammenarbeit", 378
11865 +"Zusammenhang", 423
11866 +"Zusammenspiel", 214
11874 +"Zwischenablage", 185
11878 +"abgedruckte", 119
11879 +"abgedruckten", 223
11881 +"abgeschaltet", 128
11882 +"abgeschlossen", 217
11884 +"abgespeichert", 151
11891 +"abspeichern", 151
11901 +"aktualisiert", 155
11914 +"allerdings", 4659
11918 +"allgemeinen", 480
11925 +"amerikanische", 244
11926 +"amerikanischen", 366
11936 +"andererseits", 246
11945 +"angebotenen", 187
11949 +"angegebenen", 251
11955 +"angeschlossen", 430
11956 +"angeschlossenen", 299
11958 +"angesprochen", 241
11966 +"anscheinend", 186
11984 +"aufeinander", 112
11986 +"aufgenommen", 210
12002 +"aufzunehmen", 100
12010 +"ausgeliefert", 345
12011 +"ausgeschaltet", 115
12012 +"ausgeschlossen", 142
12013 +"ausgesprochen", 145
12014 +"ausgestattet", 518
12015 +"ausgetauscht", 121
12016 +"ausgewertet", 100
12020 +"ausreichend", 346
12022 +"ausschalten", 116
12024 +"austauschen", 246
12027 +"automatisch", 1803
12028 +"automatische", 422
12029 +"automatischen", 223
12036 +"beansprucht", 125
12037 +"beantworten", 138
12046 +"beeinflussen", 170
12051 +"befindlichen", 149
12062 +"beherrschen", 287
12072 +"beispielsweise", 3309
12099 +"bereitstellen", 127
12100 +"bereitstellt", 113
12103 +"beschleunigen", 172
12104 +"beschleunigt", 159
12105 +"beschreiben", 345
12107 +"beschrieben", 480
12108 +"beschriebene", 157
12109 +"beschriebenen", 312
12125 +"bestehenden", 232
12135 +"beteiligten", 146
12140 +"betreffende", 106
12141 +"betreffenden", 156
12158 +"beziehungsweise", 2293
12220 +"dargestellt", 461
12226 +"darzustellen", 178
12237 +"definierten", 210
12240 +"demonstriert", 122
12256 +"derzeitigen", 136
12261 +"detaillierte", 116
12289 +"digitalisiert", 109
12297 +"dokumentiert", 213
12305 +"dreidimensionale", 122
12314 +"durchlaufen", 109
12319 +"dynamischen", 140
12336 +"eigentlich", 1200
12337 +"eigentliche", 549
12338 +"eigentlichen", 585
12356 +"einfachsten", 186
12359 +"eingebauten", 262
12361 +"eingebunden", 220
12363 +"eingerichtet", 172
12364 +"eingeschaltet", 141
12366 +"eingesetzten", 110
12367 +"eingestellt", 396
12368 +"eingetragen", 256
12369 +"einheitliche", 120
12378 +"einschalten", 127
12382 +"einstellbar", 109
12385 +"einwandfrei", 267
12395 +"einzusetzen", 212
12396 +"einzustellen", 123
12397 +"elektronische", 264
12398 +"elektronischen", 373
12399 +"elektronischer", 110
12403 +"empfehlenswert", 103
12422 +"enthaltenen", 232
12425 +"entscheiden", 269
12426 +"entscheidende", 101
12427 +"entscheidet", 159
12428 +"entschieden", 171
12429 +"entsprechen", 358
12430 +"entsprechend", 923
12431 +"entsprechende", 1064
12432 +"entsprechenden", 1273
12433 +"entsprechender", 223
12434 +"entsprechendes", 121
12443 +"entwickelte", 300
12444 +"entwickelten", 193
12448 +"erfolgreich", 298
12449 +"erfolgreichen", 112
12452 +"erforderlich", 773
12453 +"erforderlichen", 166
12474 +"erleichtern", 328
12475 +"erleichtert", 319
12478 +"ermittelten", 115
12492 +"erstaunlich", 152
12509 +"erweiterten", 366
12529 +"existierenden", 127
12554 +"fehlerhafte", 107
12565 +"festgelegten", 100
12567 +"feststellen", 240
12568 +"festzustellen", 112
12583 +"formatieren", 107
12593 +"freigegeben", 140
12599 +"funktionieren", 317
12600 +"funktioniert", 923
12601 +"funktionierte", 132
12626 +"gegebenenfalls", 402
12628 +"gegenseitig", 116
12634 +"gekennzeichnet", 134
12640 +"gelegentlich", 263
12644 +"gelieferten", 136
12652 +"gemeinsamen", 272
12688 +"geschlossen", 149
12689 +"geschrieben", 637
12695 +"gespeichert", 578
12696 +"gespeicherten", 153
12735 +"gleichzeitig", 1279
12746 +"grundlegende", 116
12747 +"grundlegenden", 111
12768 +"hergestellt", 162
12773 +"hervorragend", 105
12781 +"hierzulande", 145
12787 +"hinsichtlich", 243
12790 +"hintereinander", 101
12806 +"identifiziert", 113
12818 +"implementieren", 198
12819 +"implementiert", 467
12820 +"importieren", 131
12825 +"individuell", 148
12826 +"individuelle", 157
12827 +"individuellen", 107
12828 +"informieren", 145
12830 +"initialisieren", 161
12831 +"initialisiert", 225
12836 +"insbesondere", 680
12838 +"installieren", 556
12839 +"installiert", 816
12840 +"installierten", 166
12841 +"integrieren", 267
12843 +"integrierte", 422
12844 +"integriertem", 159
12845 +"integrierten", 462
12846 +"integrierter", 141
12847 +"intelligente", 100
12849 +"interaktive", 237
12850 +"interaktiven", 188
12851 +"interessant", 491
12852 +"interessante", 309
12853 +"interessanten", 145
12854 +"interessanter", 104
12855 +"interessieren", 123
12856 +"interessiert", 205
12858 +"internationalen", 138
12861 +"interpretiert", 165
12862 +"investieren", 127
12865 +"irgendwelche", 120
12898 +"keinesfalls", 134
12905 +"klassischen", 286
12918 +"komfortabel", 202
12919 +"komfortable", 152
12922 +"kommerzielle", 178
12923 +"kommerziellen", 236
12925 +"kommunizieren", 229
12927 +"kompilieren", 107
12936 +"kompliziert", 129
12937 +"komplizierter", 131
12938 +"komprimiert", 218
12939 +"komprimierte", 100
12940 +"komprimierten", 118
12941 +"konfigurieren", 209
12942 +"konfiguriert", 200
12948 +"kontrollieren", 103
12949 +"konventionellen", 117
12950 +"konvertieren", 128
12951 +"konvertiert", 157
12958 +"korrigieren", 144
13009 +"letztendlich", 127
13049 +"manipulieren", 148
13053 +"mathematische", 112
13054 +"mathematischen", 143
13076 +"menschliche", 152
13077 +"menschlichen", 174
13085 +"miteinander", 538
13086 +"mitgeliefert", 239
13087 +"mitgelieferte", 405
13088 +"mitgelieferten", 590
13093 +"mittlerweile", 640
13099 +"modifiziert", 104
13105 +"nacheinander", 160
13113 +"nebeneinander", 108
13144 +"normalerweise", 368
13148 +"notwendigen", 460
13151 +"numerischen", 120
13161 +"objektorientierte", 302
13162 +"objektorientierten", 258
13169 +"offensichtlich", 317
13172 +"offiziellen", 112
13186 +"organisiert", 145
13187 +"orientieren", 107
13199 +"physikalisch", 139
13200 +"physikalische", 176
13201 +"physikalischen", 174
13213 +"praktischen", 147
13216 +"preiswerten", 157
13217 +"preiswerter", 102
13219 +"prinzipiell", 194
13224 +"produzieren", 155
13226 +"professionelle", 227
13227 +"professionellen", 322
13228 +"profitieren", 202
13229 +"programmieren", 287
13230 +"programmiert", 254
13239 +"realisieren", 406
13247 +"rechtzeitig", 121
13251 +"registriert", 117
13298 +"schnelleren", 197
13301 +"schnellsten", 184
13319 +"seinerseits", 105
13340 +"sichergestellt", 106
13343 +"sicherstellen", 102
13351 +"signalisiert", 124
13365 +"sogenannten", 836
13366 +"sogenannter", 136
13367 +"sogenanntes", 120
13400 +"spezifiziert", 135
13442 +"technischen", 501
13443 +"technischer", 120
13454 +"theoretisch", 194
13459 +"transparent", 166
13473 +"typischerweise", 106
13474 +"umfangreiche", 264
13475 +"umfangreichen", 226
13483 +"unmittelbar", 294
13494 +"unterbringen", 115
13496 +"untereinander", 249
13498 +"untergebracht", 222
13500 +"unterscheiden", 632
13501 +"unterscheidet", 515
13502 +"unterschiedlich", 279
13503 +"unterschiedliche", 594
13504 +"unterschiedlichen", 563
13505 +"unterschiedlicher", 197
13506 +"unterstützen", 790
13507 +"untersuchen", 115
13510 +"verantwortlich", 330
13511 +"verarbeiten", 231
13512 +"verarbeitet", 284
13516 +"verbesserte", 177
13522 +"verbreitete", 125
13523 +"verbreiteten", 199
13525 +"verbundenen", 102
13528 +"vereinfachen", 154
13529 +"vereinfacht", 179
13533 +"vergangenen", 135
13537 +"vergleichbar", 203
13538 +"vergleichen", 217
13539 +"vergleichsweise", 185
13558 +"verschaffen", 128
13559 +"verschicken", 114
13561 +"verschieben", 250
13563 +"verschieden", 120
13564 +"verschiedene", 1628
13565 +"verschiedenen", 1958
13566 +"verschiedener", 367
13567 +"verschiedensten", 115
13569 +"verschwinden", 111
13570 +"verschwunden", 104
13576 +"versprechen", 132
13599 +"verwendeten", 557
13620 +"voneinander", 277
13624 +"vorausgesetzt", 336
13625 +"voraussichtlich", 140
13626 +"vorbehalten", 182
13628 +"vorbereitet", 119
13629 +"vordefinierten", 103
13631 +"vorgegebenen", 172
13632 +"vorgenommen", 198
13634 +"vorgesehenen", 111
13635 +"vorgestellt", 1240
13636 +"vorgestellte", 216
13637 +"vorgestellten", 425
13640 +"vorhandenen", 649
13644 +"vorliegende", 137
13645 +"vorliegenden", 236
13650 +"vornehmlich", 127
13653 +"vorzunehmen", 110
13656 +"wahrscheinlich", 270
13701 +"wesentliche", 212
13702 +"wesentlichen", 604
13710 +"wichtigsten", 609
13713 +"wiederholen", 103
13740 +"zahlreichen", 354
13758 +"zufriedenstellend", 505
13772 +"zusammenarbeiten", 105
13773 +"zusammenfassen", 100
13777 +"zuzugreifen", 122
13788 +"Änderungen", 808
13790 +"übertragen", 827
13792 diff --quilt /dev/null new/Dictionary/dicts/german_latex.dict
13794 +++ new/Dictionary/dicts/german_latex.dict
13796 +"::LaTeX::Abf\"alle"
13797 +"::LaTeX::Abh\"angigkeit"
13798 +"::LaTeX::Abl\"osung"
13799 +"::LaTeX::Aff\"are"
13800 +"::LaTeX::Aktion\"are"
13801 +"::LaTeX::Aktion\"aren"
13802 +"::LaTeX::Aktivit\"aten"
13803 +"::LaTeX::Anf\"uhrer"
13804 +"::LaTeX::Angeh\"orige"
13805 +"::LaTeX::Angeh\"origen"
13806 +"::LaTeX::Anh\"anger"
13807 +"::LaTeX::Anh\"angern"
13808 +"::LaTeX::Anh\"orung"
13809 +"::LaTeX::Ank\"undigung"
13810 +"::LaTeX::Ann\"aherung"
13811 +"::LaTeX::Ans\"atze"
13812 +"::LaTeX::Anschl\"age"
13813 +"::LaTeX::Anschl\"agen"
13814 +"::LaTeX::Anspr\"uche"
13815 +"::LaTeX::Anspr\"uchen"
13816 +"::LaTeX::Antr\"age"
13817 +"::LaTeX::Anw\"alte"
13818 +"::LaTeX::Arbeitskr\"afte"
13819 +"::LaTeX::Arbeitspl\"atze"
13820 +"::LaTeX::Arbeitspl\"atzen"
13821 +"::LaTeX::Atmosph\"are"
13822 +"::LaTeX::Attraktivit\"at"
13823 +"::LaTeX::Auff\"uhrung"
13824 +"::LaTeX::Auff\"uhrungen"
13825 +"::LaTeX::Aufkl\"arung"
13826 +"::LaTeX::Aufl\"osung"
13827 +"::LaTeX::Auftr\"age"
13828 +"::LaTeX::Ausf\"uhrung"
13829 +"::LaTeX::Ausf\"uhrungen"
13830 +"::LaTeX::Ausk\"unfte"
13831 +"::LaTeX::Ausl\"ander"
13832 +"::LaTeX::Ausl\"anderfeindlichkeit"
13833 +"::LaTeX::Ausl\"andern"
13834 +"::LaTeX::Ausl\"oser"
13835 +"::LaTeX::Ausr\"ustung"
13836 +"::LaTeX::Autorit\"at"
13837 +"::LaTeX::B\"acker"
13838 +"::LaTeX::B\"alle"
13839 +"::LaTeX::B\"ande"
13840 +"::LaTeX::B\"aume"
13841 +"::LaTeX::B\"aumen"
13842 +"::LaTeX::B\"oblingen"
13843 +"::LaTeX::B\"oblinger"
13844 +"::LaTeX::B\"oden"
13845 +"::LaTeX::B\"orse"
13846 +"::LaTeX::B\"orsen"
13848 +"::LaTeX::B\"ucher"
13849 +"::LaTeX::B\"uchern"
13850 +"::LaTeX::B\"uhne"
13851 +"::LaTeX::B\"uhnen"
13852 +"::LaTeX::B\"undnis"
13853 +"::LaTeX::B\"undnisgr\"unen"
13854 +"::LaTeX::B\"urger"
13855 +"::LaTeX::B\"urgerhaus"
13856 +"::LaTeX::B\"urgerinitiative"
13857 +"::LaTeX::B\"urgerinnen"
13858 +"::LaTeX::B\"urgerkrieg"
13859 +"::LaTeX::B\"urgermeister"
13860 +"::LaTeX::B\"urgermeisterin"
13861 +"::LaTeX::B\"urgermeisters"
13862 +"::LaTeX::B\"urgern"
13863 +"::LaTeX::B\"urgerschaft"
13864 +"::LaTeX::B\"urgerversammlung"
13866 +"::LaTeX::B\"urokratie"
13867 +"::LaTeX::B\"uros"
13868 +"::LaTeX::Baden-W\"urttemberg"
13869 +"::LaTeX::Bed\"urfnis"
13870 +"::LaTeX::Bed\"urfnisse"
13871 +"::LaTeX::Bef\"urchtung"
13872 +"::LaTeX::Bef\"urchtungen"
13873 +"::LaTeX::Bef\"urworter"
13874 +"::LaTeX::Begr\"undung"
13875 +"::LaTeX::Beh\"orde"
13876 +"::LaTeX::Beh\"orden"
13877 +"::LaTeX::Beitr\"age"
13878 +"::LaTeX::Beitr\"agen"
13879 +"::LaTeX::Bek\"ampfung"
13880 +"::LaTeX::Bem\"uhen"
13881 +"::LaTeX::Bem\"uhungen"
13882 +"::LaTeX::Ber\"ucksichtigung"
13883 +"::LaTeX::Besch\"aftigte"
13884 +"::LaTeX::Besch\"aftigten"
13885 +"::LaTeX::Besch\"aftigung"
13886 +"::LaTeX::Beschl\"usse"
13887 +"::LaTeX::Beschr\"ankung"
13888 +"::LaTeX::Best\"atigung"
13889 +"::LaTeX::Betr\"age"
13890 +"::LaTeX::Bev\"olkerung"
13891 +"::LaTeX::Bew\"ahrung"
13892 +"::LaTeX::Bez\"uge"
13893 +"::LaTeX::Bisch\"ofe"
13894 +"::LaTeX::Bl\"atter"
13895 +"::LaTeX::Bl\"attern"
13897 +"::LaTeX::Bl\"uten"
13898 +"::LaTeX::Br\"ucke"
13899 +"::LaTeX::Br\"ucken"
13900 +"::LaTeX::Br\"uder"
13901 +"::LaTeX::Br\"ussel"
13902 +"::LaTeX::Br\"usseler"
13903 +"::LaTeX::Brosch\"ure"
13904 +"::LaTeX::Bundesb\"urger"
13905 +"::LaTeX::Bundesl\"ander"
13906 +"::LaTeX::Bundesl\"andern"
13907 +"::LaTeX::Bundespr\"asident"
13908 +"::LaTeX::Bundespr\"asidenten"
13909 +"::LaTeX::D\"anemark"
13910 +"::LaTeX::D\"anen"
13911 +"::LaTeX::D\"orfer"
13912 +"::LaTeX::D\"orfern"
13913 +"::LaTeX::D\"usseldorf"
13914 +"::LaTeX::D\"usseldorfer"
13915 +"::LaTeX::Daf\"ur"
13916 +"::LaTeX::Dar\"uber"
13917 +"::LaTeX::Darmst\"adter"
13918 +"::LaTeX::Durchf\"uhrung"
13919 +"::LaTeX::Eigent\"umer"
13920 +"::LaTeX::Einf\"uhrung"
13921 +"::LaTeX::Einfl\"usse"
13922 +"::LaTeX::Eins\"atze"
13923 +"::LaTeX::Einsch\"atzung"
13924 +"::LaTeX::Einschr\"ankung"
13925 +"::LaTeX::Einschr\"ankungen"
13926 +"::LaTeX::Einw\"ande"
13927 +"::LaTeX::Emp\"orung"
13928 +"::LaTeX::Empf\"anger"
13929 +"::LaTeX::Engl\"ander"
13930 +"::LaTeX::Entf\"uhrung"
13931 +"::LaTeX::Entsch\"adigung"
13932 +"::LaTeX::Entt\"auschung"
13933 +"::LaTeX::Entw\"urfe"
13934 +"::LaTeX::Entwicklungsl\"ander"
13935 +"::LaTeX::Entwicklungsl\"andern"
13936 +"::LaTeX::Er\"offnung"
13937 +"::LaTeX::Erf\"ullung"
13938 +"::LaTeX::Erg\"anzung"
13939 +"::LaTeX::Erh\"ohung"
13940 +"::LaTeX::Erkl\"arung"
13941 +"::LaTeX::Erkl\"arungen"
13942 +"::LaTeX::Erl\"os"
13943 +"::LaTeX::Ern\"ahrung"
13944 +"::LaTeX::Ertr\"age"
13945 +"::LaTeX::Erz\"ahler"
13946 +"::LaTeX::Erz\"ahlung"
13947 +"::LaTeX::Erz\"ahlungen"
13948 +"::LaTeX::Europ\"aer"
13949 +"::LaTeX::Europ\"aische"
13950 +"::LaTeX::Europ\"aischen"
13951 +"::LaTeX::F\"ahigkeit"
13952 +"::LaTeX::F\"ahigkeiten"
13953 +"::LaTeX::F\"alle"
13954 +"::LaTeX::F\"allen"
13955 +"::LaTeX::F\"oderation"
13956 +"::LaTeX::F\"orderung"
13957 +"::LaTeX::F\"orster"
13958 +"::LaTeX::F\"u"se"
13959 +"::LaTeX::F\"u"sen"
13960 +"::LaTeX::F\"uhrer"
13961 +"::LaTeX::F\"uhrerschein"
13962 +"::LaTeX::F\"uhrung"
13963 +"::LaTeX::F\"uhrungen"
13964 +"::LaTeX::F\"ulle"
13966 +"::LaTeX::F\"unftel"
13968 +"::LaTeX::Fahrg\"aste"
13969 +"::LaTeX::Fakult\"at"
13970 +"::LaTeX::Fl\"ache"
13971 +"::LaTeX::Fl\"achen"
13972 +"::LaTeX::Fl\"uchtlinge"
13973 +"::LaTeX::Fl\"uchtlingen"
13974 +"::LaTeX::Fl\"uge"
13975 +"::LaTeX::Fl\"ugel"
13976 +"::LaTeX::Fl\"usse"
13977 +"::LaTeX::Flexibilit\"at"
13978 +"::LaTeX::Flugh\"afen"
13979 +"::LaTeX::Fr\"uchte"
13980 +"::LaTeX::Fr\"uher"
13981 +"::LaTeX::Fr\"uhjahr"
13982 +"::LaTeX::Fr\"uhling"
13983 +"::LaTeX::Fr\"uhst\"uck"
13984 +"::LaTeX::Fu"sg\"anger"
13985 +"::LaTeX::Fu"sg\"angerzone"
13986 +"::LaTeX::Funktion\"are"
13987 +"::LaTeX::G\"arten"
13988 +"::LaTeX::G\"artner"
13989 +"::LaTeX::G\"aste"
13990 +"::LaTeX::G\"asten"
13991 +"::LaTeX::G\"oppingen"
13992 +"::LaTeX::G\"otter"
13993 +"::LaTeX::G\"ottingen"
13994 +"::LaTeX::G\"unter"
13995 +"::LaTeX::G\"unther"
13996 +"::LaTeX::G\"uter"
13997 +"::LaTeX::Gastst\"atte"
13998 +"::LaTeX::Geb\"aude"
13999 +"::LaTeX::Geb\"auden"
14000 +"::LaTeX::Geb\"audes"
14001 +"::LaTeX::Geb\"uhr"
14002 +"::LaTeX::Geb\"uhren"
14003 +"::LaTeX::Ged\"achtnis"
14004 +"::LaTeX::Gef\"ahrdung"
14005 +"::LaTeX::Gef\"angnis"
14006 +"::LaTeX::Gef\"uhl"
14007 +"::LaTeX::Gef\"uhle"
14008 +"::LaTeX::Gef\"uhlen"
14009 +"::LaTeX::Gegen\"uber"
14010 +"::LaTeX::Gegenst\"ande"
14011 +"::LaTeX::Geh\"alter"
14012 +"::LaTeX::Geh\"or"
14013 +"::LaTeX::Gel\"ande"
14014 +"::LaTeX::Gem\"alde"
14015 +"::LaTeX::Gem\"use"
14016 +"::LaTeX::Generalsekret\"ar"
14017 +"::LaTeX::Gep\"ack"
14018 +"::LaTeX::Ger\"at"
14019 +"::LaTeX::Ger\"ate"
14020 +"::LaTeX::Ger\"aten"
14021 +"::LaTeX::Ger\"uchte"
14022 +"::LaTeX::Gesch\"aft"
14023 +"::LaTeX::Gesch\"afte"
14024 +"::LaTeX::Gesch\"aften"
14025 +"::LaTeX::Gesch\"aftsf\"uhrer"
14026 +"::LaTeX::Gesch\"aftsf\"uhrung"
14027 +"::LaTeX::Gesch\"aftsjahr"
14028 +"::LaTeX::Gesch\"aftsleitung"
14029 +"::LaTeX::Gesch\"aftsleute"
14030 +"::LaTeX::Gesch\"aftsmann"
14031 +"::LaTeX::Gesch\"aftsstelle"
14032 +"::LaTeX::Gespr\"ach"
14033 +"::LaTeX::Gespr\"ache"
14034 +"::LaTeX::Gespr\"achen"
14035 +"::LaTeX::Gespr\"achspartner"
14036 +"::LaTeX::Gest\"andnis"
14037 +"::LaTeX::Getr\"anke"
14038 +"::LaTeX::Gew\"asser"
14039 +"::LaTeX::Gl\"aubigen"
14040 +"::LaTeX::Gl\"aubiger"
14041 +"::LaTeX::Gl\"uck"
14042 +"::LaTeX::Glaubw\"urdigkeit"
14043 +"::LaTeX::Gr\"o"se"
14044 +"::LaTeX::Gr\"o"sen"
14045 +"::LaTeX::Gr\"o"senordnung"
14047 +"::LaTeX::Gr\"unde"
14048 +"::LaTeX::Gr\"unden"
14049 +"::LaTeX::Gr\"under"
14050 +"::LaTeX::Gr\"undung"
14051 +"::LaTeX::Gr\"une"
14052 +"::LaTeX::Gr\"unen"
14053 +"::LaTeX::Gro"sst\"adten"
14054 +"::LaTeX::Grunds\"atze"
14055 +"::LaTeX::Grunds\"atzlich"
14056 +"::LaTeX::Grundst\"uck"
14057 +"::LaTeX::Grundst\"ucke"
14058 +"::LaTeX::H\"aftlinge"
14059 +"::LaTeX::H\"alfte"
14060 +"::LaTeX::H\"ande"
14061 +"::LaTeX::H\"anden"
14062 +"::LaTeX::H\"andler"
14063 +"::LaTeX::H\"arte"
14064 +"::LaTeX::H\"atte"
14065 +"::LaTeX::H\"auser"
14066 +"::LaTeX::H\"ausern"
14067 +"::LaTeX::H\"ochst"
14068 +"::LaTeX::H\"ochster"
14070 +"::LaTeX::H\"ohen"
14071 +"::LaTeX::H\"ohepunkt"
14072 +"::LaTeX::H\"olle"
14073 +"::LaTeX::H\"orer"
14074 +"::LaTeX::H\"ugel"
14075 +"::LaTeX::H\"urde"
14076 +"::LaTeX::H\"urden"
14077 +"::LaTeX::H\"utte"
14078 +"::LaTeX::Hans-J\"urgen"
14079 +"::LaTeX::Haust\"ur"
14080 +"::LaTeX::Hintergr\"unde"
14081 +"::LaTeX::Holl\"ander"
14082 +"::LaTeX::Identit\"at"
14083 +"::LaTeX::Intensit\"at"
14084 +"::LaTeX::J\"ager"
14086 +"::LaTeX::J\"urgen"
14087 +"::LaTeX::Jahres\"uberschu"s"
14088 +"::LaTeX::Jubil\"aum"
14089 +"::LaTeX::K\"alte"
14090 +"::LaTeX::K\"ammerer"
14091 +"::LaTeX::K\"ampfe"
14092 +"::LaTeX::K\"ampfen"
14093 +"::LaTeX::K\"ampfer"
14095 +"::LaTeX::K\"aufer"
14096 +"::LaTeX::K\"ohler"
14098 +"::LaTeX::K\"olner"
14099 +"::LaTeX::K\"onig"
14100 +"::LaTeX::K\"onigin"
14101 +"::LaTeX::K\"onigreich"
14102 +"::LaTeX::K\"onigs"
14103 +"::LaTeX::K\"onnen"
14104 +"::LaTeX::K\"opfe"
14105 +"::LaTeX::K\"opfen"
14106 +"::LaTeX::K\"orper"
14107 +"::LaTeX::K\"orpers"
14108 +"::LaTeX::K\"orperverletzung"
14109 +"::LaTeX::K\"uche"
14111 +"::LaTeX::K\"undigung"
14112 +"::LaTeX::K\"unftig"
14113 +"::LaTeX::K\"unste"
14114 +"::LaTeX::K\"unstler"
14115 +"::LaTeX::K\"unstlerin"
14116 +"::LaTeX::K\"unstlern"
14117 +"::LaTeX::K\"unstlers"
14118 +"::LaTeX::K\"urze"
14119 +"::LaTeX::K\"urzung"
14120 +"::LaTeX::K\"urzungen"
14121 +"::LaTeX::K\"uste"
14122 +"::LaTeX::Kan\"ale"
14123 +"::LaTeX::Kapazit\"at"
14124 +"::LaTeX::Kapazit\"aten"
14125 +"::LaTeX::Kapit\"an"
14126 +"::LaTeX::Kapitalerh\"ohung"
14127 +"::LaTeX::Kinderg\"arten"
14128 +"::LaTeX::Kl\"ager"
14129 +"::LaTeX::Kl\"arung"
14130 +"::LaTeX::Kom\"odie"
14131 +"::LaTeX::Kontinuit\"at"
14132 +"::LaTeX::Kr\"afte"
14133 +"::LaTeX::Kr\"aften"
14134 +"::LaTeX::Kr\"uger"
14135 +"::LaTeX::Krankenh\"auser"
14136 +"::LaTeX::Krankenh\"ausern"
14137 +"::LaTeX::Kreativit\"at"
14138 +"::LaTeX::Kriminalit\"at"
14139 +"::LaTeX::L\"acheln"
14140 +"::LaTeX::L\"aden"
14141 +"::LaTeX::L\"ander"
14142 +"::LaTeX::L\"andern"
14143 +"::LaTeX::L\"ange"
14144 +"::LaTeX::L\"angst"
14146 +"::LaTeX::L\"aufer"
14147 +"::LaTeX::L\"ocher"
14148 +"::LaTeX::L\"ohne"
14149 +"::LaTeX::L\"osung"
14150 +"::LaTeX::L\"osungen"
14151 +"::LaTeX::L\"owen"
14152 +"::LaTeX::L\"ubeck"
14153 +"::LaTeX::L\"ubecker"
14154 +"::LaTeX::L\"ucke"
14155 +"::LaTeX::L\"ucken"
14157 +"::LaTeX::L\"ugen"
14158 +"::LaTeX::Leistungsf\"ahigkeit"
14159 +"::LaTeX::Lekt\"ure"
14160 +"::LaTeX::M\"adchen"
14161 +"::LaTeX::M\"angel"
14162 +"::LaTeX::M\"anner"
14163 +"::LaTeX::M\"annern"
14164 +"::LaTeX::M\"archen"
14165 +"::LaTeX::M\"arkte"
14166 +"::LaTeX::M\"arkten"
14168 +"::LaTeX::M\"obel"
14169 +"::LaTeX::M\"oglicherweise"
14170 +"::LaTeX::M\"oglichkeit"
14171 +"::LaTeX::M\"oglichkeiten"
14172 +"::LaTeX::M\"ollemann"
14173 +"::LaTeX::M\"oller"
14174 +"::LaTeX::M\"onchengladbach"
14175 +"::LaTeX::M\"order"
14178 +"::LaTeX::M\"uller"
14179 +"::LaTeX::M\"unchen"
14180 +"::LaTeX::M\"unchener"
14181 +"::LaTeX::M\"unchens"
14182 +"::LaTeX::M\"unchner"
14183 +"::LaTeX::M\"unster"
14184 +"::LaTeX::M\"unzen"
14185 +"::LaTeX::M\"utter"
14186 +"::LaTeX::Ma"sst\"abe"
14187 +"::LaTeX::Mail\"ander"
14188 +"::LaTeX::Man\"over"
14189 +"::LaTeX::Marktf\"uhrer"
14190 +"::LaTeX::Matth\"aus"
14191 +"::LaTeX::Milit\"ar"
14192 +"::LaTeX::Milit\"ars"
14193 +"::LaTeX::Millionenh\"ohe"
14194 +"::LaTeX::Ministerpr\"asident"
14195 +"::LaTeX::Ministerpr\"asidenten"
14196 +"::LaTeX::Mitb\"urger"
14197 +"::LaTeX::Mobilit\"at"
14198 +"::LaTeX::N\"achte"
14200 +"::LaTeX::N\"ahere"
14201 +"::LaTeX::N\"urnberg"
14202 +"::LaTeX::N\"urnberger"
14203 +"::LaTeX::Nat\"urlich"
14204 +"::LaTeX::Natursch\"utzer"
14205 +"::LaTeX::Niederl\"ander"
14206 +"::LaTeX::Normalit\"at"
14207 +"::LaTeX::Oberb\"urgermeister"
14208 +"::LaTeX::Oberfl\"ache"
14209 +"::LaTeX::P\"adagogen"
14210 +"::LaTeX::Pal\"astinenser"
14211 +"::LaTeX::Pal\"astinensern"
14212 +"::LaTeX::Parkpl\"atze"
14213 +"::LaTeX::Pers\"onlichkeit"
14214 +"::LaTeX::Pers\"onlichkeiten"
14215 +"::LaTeX::Ph\"anomen"
14216 +"::LaTeX::Pl\"adoyer"
14217 +"::LaTeX::Pl\"ane"
14218 +"::LaTeX::Pl\"anen"
14219 +"::LaTeX::Pl\"atze"
14220 +"::LaTeX::Pl\"atzen"
14221 +"::LaTeX::Pl\"otzlich"
14222 +"::LaTeX::Popularit\"at"
14223 +"::LaTeX::Portr\"at"
14224 +"::LaTeX::Pr\"asentation"
14225 +"::LaTeX::Pr\"asenz"
14226 +"::LaTeX::Pr\"asident"
14227 +"::LaTeX::Pr\"asidenten"
14228 +"::LaTeX::Pr\"asidentin"
14229 +"::LaTeX::Pr\"asidium"
14230 +"::LaTeX::Pr\"ufung"
14231 +"::LaTeX::Priorit\"at"
14232 +"::LaTeX::Produktivit\"at"
14233 +"::LaTeX::Qualit\"at"
14234 +"::LaTeX::Qualit\"aten"
14235 +"::LaTeX::R\"ader"
14236 +"::LaTeX::R\"atsel"
14237 +"::LaTeX::R\"auber"
14238 +"::LaTeX::R\"aume"
14239 +"::LaTeX::R\"aumen"
14240 +"::LaTeX::R\"aumung"
14241 +"::LaTeX::R\"omer"
14242 +"::LaTeX::R\"uckblick"
14243 +"::LaTeX::R\"ucken"
14244 +"::LaTeX::R\"uckf\"uhrung"
14245 +"::LaTeX::R\"uckgabe"
14246 +"::LaTeX::R\"uckgang"
14247 +"::LaTeX::R\"uckkehr"
14248 +"::LaTeX::R\"ucksicht"
14249 +"::LaTeX::R\"uckstand"
14250 +"::LaTeX::R\"ucktritt"
14251 +"::LaTeX::R\"uckzug"
14252 +"::LaTeX::R\"udiger"
14254 +"::LaTeX::R\"usselsheim"
14255 +"::LaTeX::R\"uttgers"
14256 +"::LaTeX::Realit\"at"
14257 +"::LaTeX::Regierungspr\"asidium"
14258 +"::LaTeX::Reiseb\"uros"
14259 +"::LaTeX::Repr\"asentanten"
14260 +"::LaTeX::Rot-Gr\"un"
14261 +"::LaTeX::Rum\"anien"
14262 +"::LaTeX::S\"anger"
14263 +"::LaTeX::S\"angerin"
14264 +"::LaTeX::S\"atze"
14265 +"::LaTeX::S\"atzen"
14266 +"::LaTeX::S\"aulen"
14267 +"::LaTeX::S\"ohne"
14269 +"::LaTeX::S\"udafrika"
14270 +"::LaTeX::S\"udafrikas"
14271 +"::LaTeX::S\"udamerika"
14272 +"::LaTeX::S\"uden"
14273 +"::LaTeX::S\"udkorea"
14274 +"::LaTeX::S\"udosten"
14275 +"::LaTeX::S\"udwesten"
14276 +"::LaTeX::Saarbr\"ucken"
14277 +"::LaTeX::Sachverst\"andigen"
14278 +"::LaTeX::Sch\"aden"
14279 +"::LaTeX::Sch\"afer"
14280 +"::LaTeX::Sch\"atzung"
14281 +"::LaTeX::Sch\"atzungen"
14282 +"::LaTeX::Sch\"auble"
14283 +"::LaTeX::Sch\"on"
14284 +"::LaTeX::Sch\"one"
14285 +"::LaTeX::Sch\"onheit"
14286 +"::LaTeX::Sch\"uler"
14287 +"::LaTeX::Sch\"ulerin"
14288 +"::LaTeX::Sch\"ulerinnen"
14289 +"::LaTeX::Sch\"ulern"
14290 +"::LaTeX::Sch\"usse"
14291 +"::LaTeX::Schl\"age"
14292 +"::LaTeX::Schl\"ussel"
14293 +"::LaTeX::Schr\"oder"
14294 +"::LaTeX::Schw\"ache"
14295 +"::LaTeX::Schw\"achen"
14296 +"::LaTeX::Selbst\"andigkeit"
14297 +"::LaTeX::Sexualit\"at"
14298 +"::LaTeX::Sicherheitskr\"afte"
14299 +"::LaTeX::Solidarit\"at"
14300 +"::LaTeX::Souver\"anit\"at"
14301 +"::LaTeX::Sozialhilfeempf\"anger"
14302 +"::LaTeX::Sp\"ater"
14303 +"::LaTeX::Sp\"atestens"
14304 +"::LaTeX::St\"adte"
14305 +"::LaTeX::St\"adten"
14306 +"::LaTeX::St\"amme"
14307 +"::LaTeX::St\"arke"
14308 +"::LaTeX::St\"arkung"
14309 +"::LaTeX::St\"orungen"
14310 +"::LaTeX::St\"uck"
14311 +"::LaTeX::St\"ucke"
14312 +"::LaTeX::St\"ucken"
14313 +"::LaTeX::St\"uhle"
14314 +"::LaTeX::St\"urmer"
14315 +"::LaTeX::Staatsanw\"alte"
14316 +"::LaTeX::Staatsb\"urgerschaft"
14317 +"::LaTeX::Staatspr\"asident"
14318 +"::LaTeX::Staatspr\"asidenten"
14319 +"::LaTeX::Staatssekret\"ar"
14320 +"::LaTeX::Stabilit\"at"
14321 +"::LaTeX::Stadtb\"ucherei"
14322 +"::LaTeX::Stadtr\"ate"
14323 +"::LaTeX::Stadtr\"atin"
14324 +"::LaTeX::Streitkr\"afte"
14325 +"::LaTeX::T\"anzer"
14326 +"::LaTeX::T\"ater"
14327 +"::LaTeX::T\"atern"
14328 +"::LaTeX::T\"atigkeit"
14329 +"::LaTeX::T\"atigkeiten"
14330 +"::LaTeX::T\"ochter"
14332 +"::LaTeX::T\"opfer"
14333 +"::LaTeX::T\"otung"
14334 +"::LaTeX::T\"ubingen"
14335 +"::LaTeX::T\"ubinger"
14337 +"::LaTeX::T\"uren"
14338 +"::LaTeX::T\"urkei"
14339 +"::LaTeX::T\"urken"
14340 +"::LaTeX::Tats\"achlich"
14341 +"::LaTeX::Th\"uringen"
14342 +"::LaTeX::Th\"uringer"
14343 +"::LaTeX::Torh\"uter"
14344 +"::LaTeX::Torj\"ager"
14345 +"::LaTeX::Tr\"ager"
14346 +"::LaTeX::Tr\"anen"
14347 +"::LaTeX::Tr\"aume"
14348 +"::LaTeX::Trag\"odie"
14349 +"::LaTeX::Trib\"une"
14350 +"::LaTeX::US-Pr\"asident"
14351 +"::LaTeX::Ums\"atze"
14352 +"::LaTeX::Umst\"ande"
14353 +"::LaTeX::Umst\"anden"
14354 +"::LaTeX::Umweltsch\"utzer"
14355 +"::LaTeX::Unabh\"angigkeit"
14356 +"::LaTeX::Unf\"alle"
14357 +"::LaTeX::Unf\"allen"
14358 +"::LaTeX::Ungl\"uck"
14359 +"::LaTeX::Universit\"at"
14360 +"::LaTeX::Universit\"aten"
14361 +"::LaTeX::Unterdr\"uckung"
14362 +"::LaTeX::Unterst\"utzung"
14363 +"::LaTeX::Urauff\"uhrung"
14364 +"::LaTeX::Urspr\"unglich"
14365 +"::LaTeX::V\"ater"
14366 +"::LaTeX::V\"ogel"
14367 +"::LaTeX::V\"olker"
14368 +"::LaTeX::V\"ollig"
14369 +"::LaTeX::Ver\"anderung"
14370 +"::LaTeX::Ver\"anderungen"
14371 +"::LaTeX::Ver\"offentlichung"
14372 +"::LaTeX::Verb\"ande"
14373 +"::LaTeX::Verb\"anden"
14374 +"::LaTeX::Verb\"undeten"
14375 +"::LaTeX::Verf\"ugung"
14376 +"::LaTeX::Vergn\"ugen"
14377 +"::LaTeX::Verh\"altnis"
14378 +"::LaTeX::Verh\"altnisse"
14379 +"::LaTeX::Verh\"altnissen"
14380 +"::LaTeX::Verk\"aufer"
14381 +"::LaTeX::Verl\"angerung"
14382 +"::LaTeX::Verm\"ogen"
14383 +"::LaTeX::Vers\"ohnung"
14384 +"::LaTeX::Versch\"arfung"
14385 +"::LaTeX::Versp\"atung"
14386 +"::LaTeX::Verst\"andigung"
14387 +"::LaTeX::Verst\"andnis"
14388 +"::LaTeX::Verst\"arkung"
14389 +"::LaTeX::Verst\"o"se"
14390 +"::LaTeX::Vertr\"age"
14391 +"::LaTeX::Verz\"ogerung"
14392 +"::LaTeX::Vizepr\"asident"
14393 +"::LaTeX::Vorg\"ange"
14394 +"::LaTeX::Vorg\"anger"
14395 +"::LaTeX::Vorschl\"age"
14396 +"::LaTeX::Vorschl\"agen"
14397 +"::LaTeX::Vortr\"age"
14398 +"::LaTeX::Vorw\"urfe"
14399 +"::LaTeX::Vorw\"urfen"
14400 +"::LaTeX::Vorz\"uge"
14401 +"::LaTeX::W\"ahler"
14402 +"::LaTeX::W\"ahlern"
14403 +"::LaTeX::W\"ahrend"
14404 +"::LaTeX::W\"ahrung"
14405 +"::LaTeX::W\"ahrungen"
14406 +"::LaTeX::W\"ahrungsunion"
14407 +"::LaTeX::W\"alder"
14408 +"::LaTeX::W\"ande"
14409 +"::LaTeX::W\"anden"
14411 +"::LaTeX::W\"arme"
14412 +"::LaTeX::W\"orter"
14413 +"::LaTeX::W\"unsche"
14414 +"::LaTeX::W\"unschen"
14415 +"::LaTeX::W\"urde"
14416 +"::LaTeX::W\"urttemberg"
14417 +"::LaTeX::W\"urzburg"
14418 +"::LaTeX::W\"uste"
14419 +"::LaTeX::Werkst\"atten"
14420 +"::LaTeX::Wettbewerbsf\"ahigkeit"
14421 +"::LaTeX::Widerspr\"uche"
14422 +"::LaTeX::Z\"ahler"
14423 +"::LaTeX::Z\"ahne"
14425 +"::LaTeX::Z\"ugen"
14426 +"::LaTeX::Z\"urich"
14427 +"::LaTeX::Zerst\"orung"
14428 +"::LaTeX::Zuh\"orer"
14429 +"::LaTeX::Zun\"achst"
14430 +"::LaTeX::Zur\"uck"
14431 +"::LaTeX::Zur\"uckhaltung"
14432 +"::LaTeX::Zus\"atzlich"
14433 +"::LaTeX::Zusammenh\"ange"
14434 +"::LaTeX::Zusch\"usse"
14435 +"::LaTeX::Zust\"ande"
14436 +"::LaTeX::Zust\"andigkeit"
14437 +"::LaTeX::Zw\"olf"
14439 +"::LaTeX::\"Agypten"
14440 +"::LaTeX::\"Ahnlich"
14441 +"::LaTeX::\"Amter"
14442 +"::LaTeX::\"Amtern"
14443 +"::LaTeX::\"Anderung"
14444 +"::LaTeX::\"Anderungen"
14445 +"::LaTeX::\"Angste"
14447 +"::LaTeX::\"Arger"
14448 +"::LaTeX::\"Arzte"
14449 +"::LaTeX::\"Arzten"
14450 +"::LaTeX::\"Asthetik"
14451 +"::LaTeX::\"Au"serung"
14452 +"::LaTeX::\"Au"serungen"
14454 +"::LaTeX::\"Offentliche"
14455 +"::LaTeX::\"Offentlichkeit"
14456 +"::LaTeX::\"Offentlichkeitsarbeit"
14457 +"::LaTeX::\"Offnung"
14458 +"::LaTeX::\"Offnungszeiten"
14459 +"::LaTeX::\"Okologie"
14460 +"::LaTeX::\"Okonomie"
14462 +"::LaTeX::\"Osterreich"
14463 +"::LaTeX::\"Osterreicher"
14464 +"::LaTeX::\"Osterreichs"
14466 +"::LaTeX::\"Uberall"
14467 +"::LaTeX::\"Uberblick"
14468 +"::LaTeX::\"Ubereinstimmung"
14469 +"::LaTeX::\"Uberfall"
14470 +"::LaTeX::\"Ubergabe"
14471 +"::LaTeX::\"Ubergang"
14472 +"::LaTeX::\"Uberhaupt"
14473 +"::LaTeX::\"Uberleben"
14474 +"::LaTeX::\"Uberlebenden"
14475 +"::LaTeX::\"Uberlegungen"
14476 +"::LaTeX::\"Ubernachtungen"
14477 +"::LaTeX::\"Ubernahme"
14478 +"::LaTeX::\"Uberpr\"ufung"
14479 +"::LaTeX::\"Uberraschung"
14480 +"::LaTeX::\"Uberraschungen"
14481 +"::LaTeX::\"Uberschrift"
14482 +"::LaTeX::\"Uberschu"s"
14483 +"::LaTeX::\"Ubersetzung"
14484 +"::LaTeX::\"Uberstunden"
14485 +"::LaTeX::\"Ubertragung"
14486 +"::LaTeX::\"Uberwachung"
14487 +"::LaTeX::\"Uberzeugung"
14488 +"::LaTeX::\"Ubung"
14489 +"::LaTeX::\"Ubungen"
14490 +"::LaTeX::\"agyptischen"
14491 +"::LaTeX::\"ahnlich"
14492 +"::LaTeX::\"ahnliche"
14493 +"::LaTeX::\"ahnlichen"
14494 +"::LaTeX::\"ahnlicher"
14495 +"::LaTeX::\"ahnliches"
14496 +"::LaTeX::\"alter"
14497 +"::LaTeX::\"altere"
14498 +"::LaTeX::\"alteren"
14499 +"::LaTeX::\"alterer"
14500 +"::LaTeX::\"alteste"
14501 +"::LaTeX::\"altesten"
14502 +"::LaTeX::\"andern"
14503 +"::LaTeX::\"andert"
14504 +"::LaTeX::\"anderte"
14505 +"::LaTeX::\"argert"
14506 +"::LaTeX::\"arztliche"
14507 +"::LaTeX::\"au"sere"
14508 +"::LaTeX::\"au"seren"
14509 +"::LaTeX::\"au"sern"
14510 +"::LaTeX::\"au"serst"
14511 +"::LaTeX::\"au"sert"
14512 +"::LaTeX::\"au"serte"
14513 +"::LaTeX::\"au"serten"
14514 +"::LaTeX::\"offentlich"
14515 +"::LaTeX::\"offentlich-rechtlichen"
14516 +"::LaTeX::\"offentliche"
14517 +"::LaTeX::\"offentlichen"
14518 +"::LaTeX::\"offentlicher"
14519 +"::LaTeX::\"offnen"
14520 +"::LaTeX::\"offnet"
14521 +"::LaTeX::\"offnete"
14522 +"::LaTeX::\"ofter"
14523 +"::LaTeX::\"okologisch"
14524 +"::LaTeX::\"okologische"
14525 +"::LaTeX::\"okologischen"
14526 +"::LaTeX::\"okonomisch"
14527 +"::LaTeX::\"okonomische"
14528 +"::LaTeX::\"okonomischen"
14529 +"::LaTeX::\"ortliche"
14530 +"::LaTeX::\"ortlichen"
14531 +"::LaTeX::\"osterreichische"
14532 +"::LaTeX::\"osterreichischen"
14533 +"::LaTeX::\"ostlich"
14534 +"::LaTeX::\"ostlichen"
14538 +"::LaTeX::\"uberall"
14539 +"::LaTeX::\"uberaus"
14540 +"::LaTeX::\"uberdies"
14541 +"::LaTeX::\"uberein"
14542 +"::LaTeX::\"uberfallen"
14543 +"::LaTeX::\"uberfl\"ussig"
14544 +"::LaTeX::\"uberfordert"
14545 +"::LaTeX::\"ubergeben"
14546 +"::LaTeX::\"uberhaupt"
14547 +"::LaTeX::\"uberholt"
14548 +"::LaTeX::\"uberlassen"
14549 +"::LaTeX::\"uberleben"
14550 +"::LaTeX::\"uberlebt"
14551 +"::LaTeX::\"uberlegen"
14552 +"::LaTeX::\"uberlegt"
14553 +"::LaTeX::\"ubernahm"
14554 +"::LaTeX::\"ubernehmen"
14555 +"::LaTeX::\"ubernimmt"
14556 +"::LaTeX::\"ubernommen"
14557 +"::LaTeX::\"uberpr\"ufen"
14558 +"::LaTeX::\"uberpr\"uft"
14559 +"::LaTeX::\"uberraschend"
14560 +"::LaTeX::\"uberraschenden"
14561 +"::LaTeX::\"uberrascht"
14562 +"::LaTeX::\"uberreicht"
14563 +"::LaTeX::\"ubers"
14564 +"::LaTeX::\"uberschreiten"
14565 +"::LaTeX::\"uberschritten"
14566 +"::LaTeX::\"ubersehen"
14567 +"::LaTeX::\"ubersetzt"
14568 +"::LaTeX::\"uberstanden"
14569 +"::LaTeX::\"ubertragen"
14570 +"::LaTeX::\"ubertrieben"
14571 +"::LaTeX::\"ubertroffen"
14572 +"::LaTeX::\"uberwachen"
14573 +"::LaTeX::\"uberwacht"
14574 +"::LaTeX::\"uberwiegend"
14575 +"::LaTeX::\"uberwiesen"
14576 +"::LaTeX::\"uberwinden"
14577 +"::LaTeX::\"uberwunden"
14578 +"::LaTeX::\"uberzeugen"
14579 +"::LaTeX::\"uberzeugend"
14580 +"::LaTeX::\"uberzeugt"
14581 +"::LaTeX::\"uberzogen"
14582 +"::LaTeX::\"ublich"
14583 +"::LaTeX::\"ubliche"
14584 +"::LaTeX::\"ublichen"
14585 +"::LaTeX::\"ubrig"
14586 +"::LaTeX::\"ubrigen"
14587 +"::LaTeX::\"ubrigens"
14590 +"::LaTeX::abgel\"ost"
14591 +"::LaTeX::abh\"angig"
14592 +"::LaTeX::allj\"ahrlich"
14593 +"::LaTeX::allm\"ahlich"
14594 +"::LaTeX::allt\"aglichen"
14595 +"::LaTeX::angef\"uhrt"
14596 +"::LaTeX::angeh\"oren"
14597 +"::LaTeX::angeh\"ort"
14598 +"::LaTeX::angek\"undigt"
14599 +"::LaTeX::angek\"undigte"
14600 +"::LaTeX::angek\"undigten"
14601 +"::LaTeX::anl\"a"slich"
14602 +"::LaTeX::ann\"ahernd"
14603 +"::LaTeX::aufgef\"uhrt"
14604 +"::LaTeX::aufgekl\"art"
14605 +"::LaTeX::aufgel\"ost"
14606 +"::LaTeX::aufh\"oren"
14607 +"::LaTeX::aus\"uben"
14608 +"::LaTeX::ausdr\"ucklich"
14609 +"::LaTeX::ausf\"uhrlich"
14610 +"::LaTeX::ausge\"ubt"
14611 +"::LaTeX::ausgef\"uhrt"
14612 +"::LaTeX::ausgel\"ost"
14613 +"::LaTeX::ausger\"ustet"
14614 +"::LaTeX::ausgew\"ahlt"
14615 +"::LaTeX::ausl\"andische"
14616 +"::LaTeX::ausl\"andischen"
14617 +"::LaTeX::ausl\"andischer"
14618 +"::LaTeX::ausl\"osen"
14620 +"::LaTeX::b\"osen"
14621 +"::LaTeX::b\"urgerliche"
14622 +"::LaTeX::b\"urgerlichen"
14623 +"::LaTeX::baden-w\"urttembergische"
14624 +"::LaTeX::baden-w\"urttembergischen"
14625 +"::LaTeX::beeintr\"achtigt"
14626 +"::LaTeX::bef\"ordert"
14627 +"::LaTeX::bef\"urchten"
14628 +"::LaTeX::bef\"urchtet"
14629 +"::LaTeX::bef\"urwortet"
14630 +"::LaTeX::begn\"ugen"
14631 +"::LaTeX::begr\"u"sen"
14632 +"::LaTeX::begr\"u"st"
14633 +"::LaTeX::begr\"u"ste"
14634 +"::LaTeX::begr\"unden"
14635 +"::LaTeX::begr\"undet"
14636 +"::LaTeX::begr\"undete"
14637 +"::LaTeX::begr\"undeten"
14638 +"::LaTeX::beh\"alt"
14639 +"::LaTeX::bek\"ampfen"
14640 +"::LaTeX::bek\"ampft"
14641 +"::LaTeX::bekr\"aftigt"
14642 +"::LaTeX::bekr\"aftigte"
14643 +"::LaTeX::bem\"uhen"
14644 +"::LaTeX::bem\"uht"
14645 +"::LaTeX::bem\"uhte"
14646 +"::LaTeX::ben\"otigen"
14647 +"::LaTeX::ben\"otigt"
14648 +"::LaTeX::ben\"otigte"
14649 +"::LaTeX::ben\"otigten"
14650 +"::LaTeX::ber\"at"
14651 +"::LaTeX::ber\"ucksichtigen"
14652 +"::LaTeX::ber\"ucksichtigt"
14653 +"::LaTeX::ber\"uhmt"
14654 +"::LaTeX::ber\"uhmte"
14655 +"::LaTeX::ber\"uhmten"
14656 +"::LaTeX::ber\"uhrt"
14657 +"::LaTeX::besch\"adigt"
14658 +"::LaTeX::besch\"aftigen"
14659 +"::LaTeX::besch\"aftigt"
14660 +"::LaTeX::besch\"aftigte"
14661 +"::LaTeX::beschr\"anken"
14662 +"::LaTeX::beschr\"ankt"
14663 +"::LaTeX::best\"atigen"
14664 +"::LaTeX::best\"atigt"
14665 +"::LaTeX::best\"atigte"
14666 +"::LaTeX::best\"atigten"
14667 +"::LaTeX::betr\"achtlich"
14668 +"::LaTeX::betr\"agt"
14669 +"::LaTeX::bew\"ahrt"
14670 +"::LaTeX::bew\"altigen"
14671 +"::LaTeX::bew\"olkt"
14672 +"::LaTeX::bez\"uglich"
14673 +"::LaTeX::buchst\"ablich"
14674 +"::LaTeX::d\"anische"
14675 +"::LaTeX::d\"anischen"
14677 +"::LaTeX::d\"unnen"
14678 +"::LaTeX::d\"urfe"
14679 +"::LaTeX::d\"urfen"
14680 +"::LaTeX::d\"urfte"
14681 +"::LaTeX::d\"urften"
14682 +"::LaTeX::daf\"ur"
14683 +"::LaTeX::dar\"uber"
14684 +"::LaTeX::demn\"achst"
14685 +"::LaTeX::diesj\"ahrigen"
14686 +"::LaTeX::dr\"angen"
14687 +"::LaTeX::dr\"angt"
14688 +"::LaTeX::dr\"uben"
14689 +"::LaTeX::dr\"ucken"
14690 +"::LaTeX::dr\"uckt"
14691 +"::LaTeX::dr\"uckte"
14692 +"::LaTeX::durchf\"uhren"
14693 +"::LaTeX::durchgef\"uhrt"
14694 +"::LaTeX::eigenst\"andige"
14695 +"::LaTeX::einf\"uhren"
14696 +"::LaTeX::eingef\"uhrt"
14697 +"::LaTeX::einger\"aumt"
14698 +"::LaTeX::eingeschr\"ankt"
14699 +"::LaTeX::einschl\"agigen"
14700 +"::LaTeX::einzuf\"uhren"
14701 +"::LaTeX::emp\"ort"
14702 +"::LaTeX::endg\"ultig"
14703 +"::LaTeX::endg\"ultige"
14704 +"::LaTeX::endg\"ultigen"
14705 +"::LaTeX::entf\"allt"
14706 +"::LaTeX::entf\"uhrt"
14707 +"::LaTeX::enth\"alt"
14708 +"::LaTeX::entt\"auscht"
14709 +"::LaTeX::er\"offnen"
14710 +"::LaTeX::er\"offnet"
14711 +"::LaTeX::er\"offnete"
14712 +"::LaTeX::er\"ortert"
14713 +"::LaTeX::erf\"ahrt"
14714 +"::LaTeX::erf\"ullen"
14715 +"::LaTeX::erf\"ullt"
14716 +"::LaTeX::erg\"anzen"
14717 +"::LaTeX::erg\"anzt"
14718 +"::LaTeX::erh\"alt"
14719 +"::LaTeX::erh\"altlich"
14720 +"::LaTeX::erh\"ohen"
14721 +"::LaTeX::erh\"oht"
14722 +"::LaTeX::erh\"ohte"
14723 +"::LaTeX::erh\"ohten"
14724 +"::LaTeX::erkl\"aren"
14725 +"::LaTeX::erkl\"art"
14726 +"::LaTeX::erkl\"arte"
14727 +"::LaTeX::erkl\"arten"
14728 +"::LaTeX::erl\"autert"
14729 +"::LaTeX::erl\"auterte"
14730 +"::LaTeX::erm\"oglichen"
14731 +"::LaTeX::erm\"oglicht"
14732 +"::LaTeX::ern\"ahren"
14733 +"::LaTeX::ersch\"opft"
14734 +"::LaTeX::ersch\"uttert"
14735 +"::LaTeX::erw\"ahnt"
14736 +"::LaTeX::erw\"ahnte"
14737 +"::LaTeX::erz\"ahlen"
14738 +"::LaTeX::erz\"ahlt"
14739 +"::LaTeX::erz\"ahlte"
14740 +"::LaTeX::europ\"aische"
14741 +"::LaTeX::europ\"aischen"
14742 +"::LaTeX::europ\"aischer"
14743 +"::LaTeX::f\"ahig"
14744 +"::LaTeX::f\"ahrt"
14745 +"::LaTeX::f\"allig"
14746 +"::LaTeX::f\"allt"
14747 +"::LaTeX::f\"angt"
14748 +"::LaTeX::f\"ordern"
14749 +"::LaTeX::f\"ordert"
14751 +"::LaTeX::f\"ugte"
14752 +"::LaTeX::f\"uhle"
14753 +"::LaTeX::f\"uhlen"
14754 +"::LaTeX::f\"uhlt"
14755 +"::LaTeX::f\"uhlte"
14756 +"::LaTeX::f\"uhlten"
14757 +"::LaTeX::f\"uhre"
14758 +"::LaTeX::f\"uhren"
14759 +"::LaTeX::f\"uhrende"
14760 +"::LaTeX::f\"uhrenden"
14761 +"::LaTeX::f\"uhrender"
14762 +"::LaTeX::f\"uhrt"
14763 +"::LaTeX::f\"uhrte"
14764 +"::LaTeX::f\"uhrten"
14765 +"::LaTeX::f\"ullen"
14766 +"::LaTeX::f\"ullt"
14768 +"::LaTeX::f\"unfmal"
14769 +"::LaTeX::f\"unfte"
14770 +"::LaTeX::f\"unften"
14771 +"::LaTeX::f\"unfzehn"
14772 +"::LaTeX::f\"unfzig"
14774 +"::LaTeX::f\"urchten"
14775 +"::LaTeX::f\"urchtet"
14777 +"::LaTeX::fl\"uchtete"
14778 +"::LaTeX::fr\"ohlich"
14780 +"::LaTeX::fr\"uhe"
14781 +"::LaTeX::fr\"uhen"
14782 +"::LaTeX::fr\"uher"
14783 +"::LaTeX::fr\"uhere"
14784 +"::LaTeX::fr\"uheren"
14785 +"::LaTeX::fr\"uherer"
14786 +"::LaTeX::fr\"uhestens"
14787 +"::LaTeX::fr\"uhzeitig"
14788 +"::LaTeX::franz\"osische"
14789 +"::LaTeX::franz\"osischen"
14790 +"::LaTeX::franz\"osischer"
14792 +"::LaTeX::g\"anzlich"
14793 +"::LaTeX::g\"ultig"
14794 +"::LaTeX::g\"ultigen"
14795 +"::LaTeX::g\"unstig"
14796 +"::LaTeX::g\"unstige"
14797 +"::LaTeX::g\"unstigen"
14798 +"::LaTeX::g\"unstiger"
14799 +"::LaTeX::ge\"andert"
14800 +"::LaTeX::ge\"au"sert"
14801 +"::LaTeX::ge\"offnet"
14802 +"::LaTeX::ge\"ubt"
14803 +"::LaTeX::geb\"urtige"
14804 +"::LaTeX::gedr\"angt"
14805 +"::LaTeX::gedr\"uckt"
14806 +"::LaTeX::gef\"ahrden"
14807 +"::LaTeX::gef\"ahrdet"
14808 +"::LaTeX::gef\"ahrlich"
14809 +"::LaTeX::gef\"ahrliche"
14810 +"::LaTeX::gef\"ahrlichen"
14811 +"::LaTeX::gef\"ahrlicher"
14812 +"::LaTeX::gef\"allt"
14813 +"::LaTeX::gef\"ordert"
14814 +"::LaTeX::gef\"uhlt"
14815 +"::LaTeX::gef\"uhrt"
14816 +"::LaTeX::gef\"uhrte"
14817 +"::LaTeX::gef\"uhrten"
14818 +"::LaTeX::gef\"ullt"
14819 +"::LaTeX::gefl\"uchtet"
14820 +"::LaTeX::gegen\"uber"
14821 +"::LaTeX::gegenw\"artig"
14822 +"::LaTeX::gegenw\"artige"
14823 +"::LaTeX::gegenw\"artigen"
14824 +"::LaTeX::gegr\"undet"
14825 +"::LaTeX::gegr\"undete"
14826 +"::LaTeX::gegr\"undeten"
14827 +"::LaTeX::geh\"ore"
14828 +"::LaTeX::geh\"oren"
14829 +"::LaTeX::geh\"orende"
14830 +"::LaTeX::geh\"orenden"
14831 +"::LaTeX::geh\"ort"
14832 +"::LaTeX::geh\"orte"
14833 +"::LaTeX::geh\"orten"
14834 +"::LaTeX::gek\"ampft"
14835 +"::LaTeX::gek\"undigt"
14836 +"::LaTeX::gek\"urzt"
14837 +"::LaTeX::gekl\"art"
14838 +"::LaTeX::gel\"ost"
14839 +"::LaTeX::gem\"a"s"
14840 +"::LaTeX::gen\"ugen"
14841 +"::LaTeX::gen\"ugend"
14842 +"::LaTeX::gen\"ugt"
14843 +"::LaTeX::gepr\"agt"
14844 +"::LaTeX::gepr\"agten"
14845 +"::LaTeX::gepr\"uft"
14846 +"::LaTeX::ger\"at"
14847 +"::LaTeX::ger\"aumt"
14848 +"::LaTeX::ger\"uckt"
14849 +"::LaTeX::geringf\"ugig"
14850 +"::LaTeX::gesch\"atzt"
14851 +"::LaTeX::gesch\"utzt"
14852 +"::LaTeX::gest\"arkt"
14853 +"::LaTeX::gest\"ort"
14854 +"::LaTeX::gest\"urzt"
14855 +"::LaTeX::gest\"utzt"
14856 +"::LaTeX::get\"otet"
14857 +"::LaTeX::gew\"ahlt"
14858 +"::LaTeX::gew\"ahlte"
14859 +"::LaTeX::gew\"ahlten"
14860 +"::LaTeX::gew\"ahren"
14861 +"::LaTeX::gew\"ahrleisten"
14862 +"::LaTeX::gew\"ahrleistet"
14863 +"::LaTeX::gew\"ahrt"
14864 +"::LaTeX::gew\"ohnlich"
14865 +"::LaTeX::gew\"ohnlichen"
14866 +"::LaTeX::gew\"ohnt"
14867 +"::LaTeX::gew\"unscht"
14868 +"::LaTeX::gew\"unschte"
14869 +"::LaTeX::gew\"unschten"
14870 +"::LaTeX::gew\"urdigt"
14871 +"::LaTeX::gez\"ahlt"
14872 +"::LaTeX::gl\"ucklich"
14873 +"::LaTeX::gr\"o"ser"
14874 +"::LaTeX::gr\"o"sere"
14875 +"::LaTeX::gr\"o"seren"
14876 +"::LaTeX::gr\"o"serer"
14877 +"::LaTeX::gr\"o"seres"
14878 +"::LaTeX::gr\"o"ste"
14879 +"::LaTeX::gr\"o"sten"
14880 +"::LaTeX::gr\"o"stenteils"
14881 +"::LaTeX::gr\"o"ster"
14883 +"::LaTeX::gr\"unden"
14884 +"::LaTeX::gr\"undete"
14885 +"::LaTeX::gr\"undeten"
14886 +"::LaTeX::gr\"undlich"
14887 +"::LaTeX::gr\"une"
14888 +"::LaTeX::gr\"unen"
14889 +"::LaTeX::gro"sz\"ugig"
14890 +"::LaTeX::grunds\"atzlich"
14891 +"::LaTeX::grunds\"atzliche"
14893 +"::LaTeX::h\"angen"
14894 +"::LaTeX::h\"angt"
14895 +"::LaTeX::h\"arter"
14896 +"::LaTeX::h\"atte"
14897 +"::LaTeX::h\"atten"
14898 +"::LaTeX::h\"aufig"
14899 +"::LaTeX::h\"aufiger"
14900 +"::LaTeX::h\"aufigsten"
14901 +"::LaTeX::h\"ochst"
14902 +"::LaTeX::h\"ochste"
14903 +"::LaTeX::h\"ochsten"
14904 +"::LaTeX::h\"ochstens"
14905 +"::LaTeX::h\"ochster"
14906 +"::LaTeX::h\"oher"
14907 +"::LaTeX::h\"ohere"
14908 +"::LaTeX::h\"oheren"
14909 +"::LaTeX::h\"oherer"
14911 +"::LaTeX::h\"oren"
14913 +"::LaTeX::h\"orte"
14914 +"::LaTeX::haupts\"achlich"
14915 +"::LaTeX::herk\"ommlichen"
14916 +"::LaTeX::hierf\"ur"
14917 +"::LaTeX::holl\"andischen"
14918 +"::LaTeX::humanit\"are"
14919 +"::LaTeX::j\"ahrlich"
14920 +"::LaTeX::j\"ahrliche"
14921 +"::LaTeX::j\"ahrlichen"
14922 +"::LaTeX::j\"udische"
14923 +"::LaTeX::j\"udischen"
14924 +"::LaTeX::j\"udischer"
14925 +"::LaTeX::j\"unger"
14926 +"::LaTeX::j\"ungere"
14927 +"::LaTeX::j\"ungeren"
14928 +"::LaTeX::j\"ungst"
14929 +"::LaTeX::j\"ungste"
14930 +"::LaTeX::j\"ungsten"
14931 +"::LaTeX::j\"ungster"
14933 +"::LaTeX::k\"amen"
14934 +"::LaTeX::k\"ampfen"
14935 +"::LaTeX::k\"ampft"
14936 +"::LaTeX::k\"ampfte"
14937 +"::LaTeX::k\"onne"
14938 +"::LaTeX::k\"onnen"
14939 +"::LaTeX::k\"onnte"
14940 +"::LaTeX::k\"onnten"
14941 +"::LaTeX::k\"orperlich"
14942 +"::LaTeX::k\"orperliche"
14943 +"::LaTeX::k\"orperlichen"
14945 +"::LaTeX::k\"uhlen"
14946 +"::LaTeX::k\"ummern"
14947 +"::LaTeX::k\"ummert"
14948 +"::LaTeX::k\"undigen"
14949 +"::LaTeX::k\"undigt"
14950 +"::LaTeX::k\"undigte"
14951 +"::LaTeX::k\"undigten"
14952 +"::LaTeX::k\"unftig"
14953 +"::LaTeX::k\"unftige"
14954 +"::LaTeX::k\"unftigen"
14955 +"::LaTeX::k\"unstlerische"
14956 +"::LaTeX::k\"unstlerischen"
14957 +"::LaTeX::k\"unstlich"
14958 +"::LaTeX::k\"unstliche"
14959 +"::LaTeX::k\"unstlichen"
14960 +"::LaTeX::k\"urzen"
14961 +"::LaTeX::k\"urzer"
14962 +"::LaTeX::k\"urzlich"
14963 +"::LaTeX::kl\"aren"
14964 +"::LaTeX::kr\"aftig"
14965 +"::LaTeX::kr\"aftige"
14966 +"::LaTeX::kr\"aftigen"
14967 +"::LaTeX::l\"a"st"
14968 +"::LaTeX::l\"achelt"
14969 +"::LaTeX::l\"acherlich"
14971 +"::LaTeX::l\"agen"
14972 +"::LaTeX::l\"andlichen"
14973 +"::LaTeX::l\"anger"
14974 +"::LaTeX::l\"angere"
14975 +"::LaTeX::l\"angerem"
14976 +"::LaTeX::l\"angeren"
14977 +"::LaTeX::l\"angerer"
14978 +"::LaTeX::l\"angst"
14979 +"::LaTeX::l\"auft"
14980 +"::LaTeX::l\"osen"
14982 +"::LaTeX::l\"oste"
14983 +"::LaTeX::langj\"ahrige"
14984 +"::LaTeX::langj\"ahrigen"
14985 +"::LaTeX::legend\"aren"
14986 +"::LaTeX::m\"achtig"
14987 +"::LaTeX::m\"achtige"
14988 +"::LaTeX::m\"achtigen"
14989 +"::LaTeX::m\"annliche"
14990 +"::LaTeX::m\"annlichen"
14991 +"::LaTeX::m\"ochte"
14992 +"::LaTeX::m\"ochten"
14994 +"::LaTeX::m\"ogen"
14995 +"::LaTeX::m\"oglich"
14996 +"::LaTeX::m\"ogliche"
14997 +"::LaTeX::m\"oglichen"
14998 +"::LaTeX::m\"oglicher"
14999 +"::LaTeX::m\"oglicherweise"
15000 +"::LaTeX::m\"oglichst"
15001 +"::LaTeX::m\"u"ste"
15002 +"::LaTeX::m\"u"sten"
15004 +"::LaTeX::m\"uhsam"
15005 +"::LaTeX::m\"usse"
15006 +"::LaTeX::m\"ussen"
15007 +"::LaTeX::milit\"arisch"
15008 +"::LaTeX::milit\"arische"
15009 +"::LaTeX::milit\"arischen"
15010 +"::LaTeX::n\"achste"
15011 +"::LaTeX::n\"achsten"
15012 +"::LaTeX::n\"achster"
15013 +"::LaTeX::n\"achstes"
15014 +"::LaTeX::n\"achtlichen"
15015 +"::LaTeX::n\"aher"
15016 +"::LaTeX::n\"amlich"
15017 +"::LaTeX::n\"ordlich"
15018 +"::LaTeX::n\"ordlichen"
15019 +"::LaTeX::n\"otig"
15020 +"::LaTeX::n\"otige"
15021 +"::LaTeX::n\"otigen"
15022 +"::LaTeX::n\"utzlich"
15023 +"::LaTeX::n\"utzt"
15024 +"::LaTeX::nachdr\"ucklich"
15025 +"::LaTeX::nachtr\"aglich"
15026 +"::LaTeX::nat\"urlich"
15027 +"::LaTeX::nat\"urliche"
15028 +"::LaTeX::nat\"urlichen"
15029 +"::LaTeX::nerv\"os"
15030 +"::LaTeX::niederl\"andische"
15031 +"::LaTeX::niederl\"andischen"
15032 +"::LaTeX::nieders\"achsische"
15033 +"::LaTeX::nieders\"achsischen"
15034 +"::LaTeX::osteurop\"aischen"
15035 +"::LaTeX::p\"unktlich"
15036 +"::LaTeX::pal\"astinensische"
15037 +"::LaTeX::pal\"astinensischen"
15038 +"::LaTeX::pers\"onlich"
15039 +"::LaTeX::pers\"onliche"
15040 +"::LaTeX::pers\"onlichen"
15041 +"::LaTeX::pers\"onlicher"
15042 +"::LaTeX::pl\"adiert"
15043 +"::LaTeX::pl\"adierte"
15044 +"::LaTeX::pl\"otzlich"
15045 +"::LaTeX::popul\"ar"
15046 +"::LaTeX::pr\"asent"
15047 +"::LaTeX::pr\"asentieren"
15048 +"::LaTeX::pr\"asentiert"
15049 +"::LaTeX::pr\"asentierte"
15050 +"::LaTeX::pr\"asentierten"
15051 +"::LaTeX::pr\"azise"
15052 +"::LaTeX::pr\"ufen"
15053 +"::LaTeX::pr\"uft"
15055 +"::LaTeX::r\"aumen"
15056 +"::LaTeX::r\"aumt"
15057 +"::LaTeX::r\"aumte"
15058 +"::LaTeX::r\"omische"
15059 +"::LaTeX::r\"omischen"
15060 +"::LaTeX::r\"ucken"
15061 +"::LaTeX::r\"uckg\"angig"
15062 +"::LaTeX::r\"uckt"
15063 +"::LaTeX::r\"uckte"
15064 +"::LaTeX::r\"uhrt"
15065 +"::LaTeX::regelm\"a"sig"
15066 +"::LaTeX::regelm\"a"sige"
15067 +"::LaTeX::regelm\"a"sigen"
15068 +"::LaTeX::regul\"aren"
15069 +"::LaTeX::religi\"ose"
15070 +"::LaTeX::religi\"osen"
15071 +"::LaTeX::rot-gr\"une"
15072 +"::LaTeX::rot-gr\"unen"
15073 +"::LaTeX::s\"achsischen"
15074 +"::LaTeX::s\"amtliche"
15075 +"::LaTeX::s\"udafrikanischen"
15076 +"::LaTeX::s\"udlich"
15077 +"::LaTeX::s\"udlichen"
15078 +"::LaTeX::sch\"atzen"
15079 +"::LaTeX::sch\"atzt"
15080 +"::LaTeX::sch\"atzungsweise"
15081 +"::LaTeX::sch\"on"
15082 +"::LaTeX::sch\"one"
15083 +"::LaTeX::sch\"onen"
15084 +"::LaTeX::sch\"oner"
15085 +"::LaTeX::sch\"ones"
15086 +"::LaTeX::sch\"onste"
15087 +"::LaTeX::sch\"onsten"
15088 +"::LaTeX::sch\"utzen"
15089 +"::LaTeX::sch\"utzt"
15090 +"::LaTeX::schl\"agt"
15091 +"::LaTeX::schw\"abischen"
15092 +"::LaTeX::schw\"acher"
15093 +"::LaTeX::schw\"armt"
15094 +"::LaTeX::selbst\"andig"
15095 +"::LaTeX::selbstverst\"andlich"
15096 +"::LaTeX::sorgf\"altig"
15097 +"::LaTeX::souver\"an"
15099 +"::LaTeX::sp\"aten"
15100 +"::LaTeX::sp\"ater"
15101 +"::LaTeX::sp\"atere"
15102 +"::LaTeX::sp\"ateren"
15103 +"::LaTeX::sp\"atestens"
15104 +"::LaTeX::sp\"urbar"
15105 +"::LaTeX::sp\"uren"
15106 +"::LaTeX::sp\"urt"
15107 +"::LaTeX::spektakul\"are"
15108 +"::LaTeX::spektakul\"aren"
15109 +"::LaTeX::st\"adtische"
15110 +"::LaTeX::st\"adtischen"
15111 +"::LaTeX::st\"andig"
15112 +"::LaTeX::st\"andige"
15113 +"::LaTeX::st\"andigen"
15114 +"::LaTeX::st\"arken"
15115 +"::LaTeX::st\"arker"
15116 +"::LaTeX::st\"arkere"
15117 +"::LaTeX::st\"arkeren"
15118 +"::LaTeX::st\"arkste"
15119 +"::LaTeX::st\"arksten"
15120 +"::LaTeX::st\"o"st"
15121 +"::LaTeX::st\"oren"
15122 +"::LaTeX::st\"ort"
15123 +"::LaTeX::st\"unde"
15124 +"::LaTeX::st\"unden"
15125 +"::LaTeX::st\"urzen"
15126 +"::LaTeX::st\"urzt"
15127 +"::LaTeX::st\"urzte"
15128 +"::LaTeX::st\"utzen"
15129 +"::LaTeX::st\"utzt"
15130 +"::LaTeX::t\"aglich"
15131 +"::LaTeX::t\"agliche"
15132 +"::LaTeX::t\"aglichen"
15133 +"::LaTeX::t\"atig"
15134 +"::LaTeX::t\"atigen"
15135 +"::LaTeX::t\"odlich"
15136 +"::LaTeX::t\"odliche"
15137 +"::LaTeX::t\"odlichen"
15138 +"::LaTeX::t\"oten"
15139 +"::LaTeX::t\"urkische"
15140 +"::LaTeX::t\"urkischen"
15141 +"::LaTeX::t\"urkischer"
15142 +"::LaTeX::tags\"uber"
15143 +"::LaTeX::tats\"achlich"
15144 +"::LaTeX::tats\"achliche"
15145 +"::LaTeX::tats\"achlichen"
15146 +"::LaTeX::tr\"agt"
15147 +"::LaTeX::tr\"aumen"
15148 +"::LaTeX::tr\"aumt"
15149 +"::LaTeX::unabh\"angig"
15150 +"::LaTeX::unabh\"angige"
15151 +"::LaTeX::unabh\"angigen"
15152 +"::LaTeX::unbegr\"undet"
15153 +"::LaTeX::unertr\"aglich"
15154 +"::LaTeX::ungef\"ahr"
15155 +"::LaTeX::ungekl\"art"
15156 +"::LaTeX::ungew\"ohnlich"
15157 +"::LaTeX::ungew\"ohnliche"
15158 +"::LaTeX::ungew\"ohnlichen"
15159 +"::LaTeX::unl\"angst"
15160 +"::LaTeX::unm\"oglich"
15161 +"::LaTeX::unn\"otig"
15162 +"::LaTeX::unterh\"alt"
15163 +"::LaTeX::unterst\"utzen"
15164 +"::LaTeX::unterst\"utzt"
15165 +"::LaTeX::unterst\"utzte"
15166 +"::LaTeX::unterst\"utzten"
15167 +"::LaTeX::unver\"andert"
15168 +"::LaTeX::unverst\"andlich"
15169 +"::LaTeX::unverz\"uglich"
15170 +"::LaTeX::unzul\"assig"
15171 +"::LaTeX::urspr\"unglich"
15172 +"::LaTeX::urspr\"ungliche"
15173 +"::LaTeX::urspr\"unglichen"
15174 +"::LaTeX::v\"ollig"
15175 +"::LaTeX::ver\"andern"
15176 +"::LaTeX::ver\"andert"
15177 +"::LaTeX::ver\"anderte"
15178 +"::LaTeX::ver\"anderten"
15179 +"::LaTeX::ver\"argert"
15180 +"::LaTeX::ver\"offentlichen"
15181 +"::LaTeX::ver\"offentlicht"
15182 +"::LaTeX::ver\"offentlichte"
15183 +"::LaTeX::ver\"offentlichten"
15184 +"::LaTeX::ver\"ubt"
15185 +"::LaTeX::verd\"achtigt"
15186 +"::LaTeX::verdr\"angen"
15187 +"::LaTeX::verdr\"angt"
15188 +"::LaTeX::verf\"ugen"
15189 +"::LaTeX::verf\"ugt"
15190 +"::LaTeX::verf\"ugte"
15191 +"::LaTeX::vergr\"o"sert"
15192 +"::LaTeX::verh\"alt"
15193 +"::LaTeX::verh\"angt"
15194 +"::LaTeX::verk\"unden"
15195 +"::LaTeX::verk\"undet"
15196 +"::LaTeX::verk\"undete"
15197 +"::LaTeX::verk\"urzt"
15198 +"::LaTeX::verkn\"upft"
15199 +"::LaTeX::verl\"a"st"
15200 +"::LaTeX::verl\"angern"
15201 +"::LaTeX::verl\"angert"
15202 +"::LaTeX::verl\"auft"
15203 +"::LaTeX::vern\"unftig"
15204 +"::LaTeX::vern\"unftige"
15205 +"::LaTeX::vernachl\"assigt"
15206 +"::LaTeX::verr\"at"
15207 +"::LaTeX::verr\"uckt"
15208 +"::LaTeX::vers\"aumt"
15209 +"::LaTeX::versch\"arft"
15210 +"::LaTeX::verst\"andigt"
15211 +"::LaTeX::verst\"andlich"
15212 +"::LaTeX::verst\"arken"
15213 +"::LaTeX::verst\"arkt"
15214 +"::LaTeX::verst\"arkte"
15215 +"::LaTeX::verst\"arkten"
15216 +"::LaTeX::verz\"ogert"
15217 +"::LaTeX::vielf\"altigen"
15218 +"::LaTeX::vollst\"andig"
15219 +"::LaTeX::vollst\"andige"
15220 +"::LaTeX::vor\"ubergehend"
15221 +"::LaTeX::vorgef\"uhrt"
15222 +"::LaTeX::vorl\"aufig"
15223 +"::LaTeX::vorl\"aufigen"
15224 +"::LaTeX::w\"achst"
15225 +"::LaTeX::w\"ahlen"
15226 +"::LaTeX::w\"ahlt"
15227 +"::LaTeX::w\"ahlte"
15228 +"::LaTeX::w\"ahrend"
15230 +"::LaTeX::w\"aren"
15231 +"::LaTeX::w\"ochentlich"
15232 +"::LaTeX::w\"ortlich"
15233 +"::LaTeX::w\"unsche"
15234 +"::LaTeX::w\"unschen"
15235 +"::LaTeX::w\"unscht"
15236 +"::LaTeX::w\"urde"
15237 +"::LaTeX::w\"urden"
15238 +"::LaTeX::w\"urdigte"
15239 +"::LaTeX::wof\"ur"
15240 +"::LaTeX::wom\"oglich"
15241 +"::LaTeX::z\"ahlen"
15242 +"::LaTeX::z\"ahlt"
15243 +"::LaTeX::z\"ahlte"
15244 +"::LaTeX::z\"ahlten"
15245 +"::LaTeX::z\"ugig"
15246 +"::LaTeX::zeitgen\"ossischen"
15247 +"::LaTeX::zerst\"oren"
15248 +"::LaTeX::zerst\"ort"
15249 +"::LaTeX::zerst\"orte"
15250 +"::LaTeX::zerst\"orten"
15251 +"::LaTeX::zuf\"allig"
15252 +"::LaTeX::zug\"anglich"
15253 +"::LaTeX::zuk\"unftig"
15254 +"::LaTeX::zuk\"unftige"
15255 +"::LaTeX::zuk\"unftigen"
15256 +"::LaTeX::zul\"assig"
15257 +"::LaTeX::zun\"achst"
15258 +"::LaTeX::zur\"uck"
15259 +"::LaTeX::zur\"uckgegangen"
15260 +"::LaTeX::zur\"uckgekehrt"
15261 +"::LaTeX::zur\"uckgenommen"
15262 +"::LaTeX::zur\"uckgetreten"
15263 +"::LaTeX::zur\"uckgewiesen"
15264 +"::LaTeX::zur\"uckgezogen"
15265 +"::LaTeX::zur\"uckgreifen"
15266 +"::LaTeX::zur\"uckhaltend"
15267 +"::LaTeX::zur\"uckkehren"
15268 +"::LaTeX::zur\"uckliegenden"
15269 +"::LaTeX::zur\"uckziehen"
15270 +"::LaTeX::zur\"uckzuf\"uhren"
15271 +"::LaTeX::zur\"uckzukehren"
15272 +"::LaTeX::zus\"atzlich"
15273 +"::LaTeX::zus\"atzliche"
15274 +"::LaTeX::zus\"atzlichen"
15275 +"::LaTeX::zus\"atzlicher"
15276 +"::LaTeX::zust\"andig"
15277 +"::LaTeX::zust\"andige"
15278 +"::LaTeX::zust\"andigen"
15279 +"::LaTeX::zw\"olf"
15280 +"::LaTeX::zwangsl\"aufig"
15281 +"::LaTeX::zweitgr\"o"ste"
15282 diff --quilt /dev/null new/Dictionary/dicts/german_top.dict
15284 +++ new/Dictionary/dicts/german_top.dict
15302 +"Abgeordnetenhaus"
15334 +"Abteilungsleiter"
15363 +"Aktiengesellschaft"
15540 +"Arbeiterwohlfahrt"
15546 +"Arbeitsbedingungen"
15547 +"Arbeitsgemeinschaft"
15553 +"Arbeitslosenquote"
15554 +"Arbeitslosigkeit"
15659 +"Auseinandersetzung"
15660 +"Auseinandersetzungen"
15676 +"Ausländerfeindlichkeit"
15721 +"Außenministerium"
15736 +"Baden-Württemberg"
15879 +"Berichterstattung"
15891 +"Berücksichtigung"
15940 +"Betriebsergebnis"
15970 +"Bezirksausschuß"
16024 +"Bosnien-Herzegowina"
16079 +"Bundesanwaltschaft"
16080 +"Bundesaußenminister"
16084 +"Bundesfinanzminister"
16086 +"Bundesgerichtshof"
16087 +"Bundesinnenminister"
16093 +"Bundespräsident"
16094 +"Bundespräsidenten"
16102 +"Bundestagsabgeordnete"
16106 +"Bundesverfassungsgericht"
16107 +"Bundesverfassungsgerichts"
16134 +"Bürgerinitiative"
16138 +"Bürgermeisterin"
16142 +"Bürgerversammlung"
16177 +"Christdemokraten"
16293 +"Dienstleistungen"
16405 +"Eigentumswohnungen"
16448 +"Einschränkungen"
16522 +"Entwicklungshilfe"
16523 +"Entwicklungsländer"
16524 +"Entwicklungsländern"
16575 +"Ermittlungsverfahren"
16625 +"Europameisterschaft"
16732 +"Finanzministerium"
16754 +"Fluggesellschaft"
16798 +"Fraktionsvorsitzende"
16856 +"Fundamentalisten"
16971 +"Generalsekretär"
17012 +"Geschäftsführer"
17013 +"Geschäftsführung"
17015 +"Geschäftsleitung"
17018 +"Geschäftsstelle"
17033 +"Gesprächspartner"
17042 +"Gesundheitswesen"
17070 +"Glaubwürdigkeit"
17072 +"Gleichberechtigung"
17219 +"Hauptversammlung"
17256 +"Herausforderungen"
17282 +"Hilfsorganisationen"
17400 +"Innenministerium"
17401 +"Innenministeriums"
17475 +"Jahreshauptversammlung"
17479 +"Jahresüberschuß"
17485 +"Jahrhundertwende"
17487 +"Jahrtausendwende"
17587 +"Kapitalerhöhung"
17694 +"Koalitionspartner"
17715 +"Kommunalpolitiker"
17764 +"Konzentrationslager"
17789 +"Krankenversicherung"
17836 +"Kultusministerium"
17874 +"Körperverletzung"
17902 +"Landeshauptstadt"
17948 +"Legislaturperiode"
17967 +"Leistungsfähigkeit"
18144 +"Mecklenburg-Vorpommern"
18176 +"Menschenrechtsverletzungen"
18225 +"Ministerpräsident"
18226 +"Ministerpräsidenten"
18237 +"Mitarbeiterinnen"
18243 +"Mitgliederversammlung"
18245 +"Mitgliedsstaaten"
18330 +"Mönchengladbach"
18358 +"Nachrichtenagentur"
18377 +"Nationalmannschaft"
18379 +"Nationalsozialismus"
18380 +"Nationalsozialisten"
18438 +"Nordrhein-Westfalen"
18463 +"Oberbürgermeister"
18465 +"Oberlandesgericht"
18466 +"Oberstaatsanwalt"
18499 +"Oppositionsparteien"
18557 +"Parlamentswahlen"
18592 +"Persönlichkeiten"
18603 +"Pflegeversicherung"
18645 +"Podiumsdiskussion"
18684 +"Pressemitteilung"
18759 +"Quadratkilometer"
18777 +"Rahmenbedingungen"
18832 +"Regierungskoalition"
18833 +"Regierungspartei"
18834 +"Regierungspräsidium"
18835 +"Regierungssprecher"
18836 +"Regierungstruppen"
18874 +"Rentenversicherung"
18989 +"SPD-Fraktionschef"
19002 +"Sachverständigen"
19055 +"Schleswig-Holstein"
19082 +"Schriftstellerin"
19160 +"Selbstbewußtsein"
19163 +"Selbstverwaltung"
19164 +"Selbständigkeit"
19192 +"Sicherheitskräfte"
19264 +"Sozialdemokraten"
19266 +"Sozialhilfeempfänger"
19335 +"Staatsanwaltschaft"
19337 +"Staatsbürgerschaft"
19340 +"Staatspräsident"
19341 +"Staatspräsidenten"
19357 +"Stadtverordneten"
19358 +"Stadtverordnetenversammlung"
19405 +"Steuerhinterziehung"
19537 +"Tarifverhandlungen"
19570 +"Telekommunikation"
19622 +"Titelverteidiger"
19708 +"US-amerikanischen"
19732 +"Umstrukturierung"
19739 +"Umweltministerium"
19784 +"Untersuchungsausschuß"
19785 +"Untersuchungshaft"
19810 +"Verantwortlichen"
19845 +"Verfassungsgericht"
19846 +"Verfassungsschutz"
19863 +"Verkehrsberuhigung"
19864 +"Verkehrsminister"
19920 +"Verteidigungsminister"
19921 +"Verteidigungsministerium"
19934 +"Verwaltungsgericht"
19945 +"Veröffentlichung"
20015 +"Vorstandsmitglied"
20016 +"Vorstandsvorsitzende"
20017 +"Vorstandsvorsitzender"
20041 +"Waffenstillstand"
20057 +"Wahrscheinlichkeit"
20094 +"Weiterentwicklung"
20108 +"Weltmeisterschaft"
20109 +"Weltmeisterschaften"
20141 +"Wettbewerbsfähigkeit"
20153 +"Wiederherstellung"
20155 +"Wiedervereinigung"
20185 +"Wirtschaftsminister"
20186 +"Wirtschaftsministerium"
20187 +"Wirtschaftspolitik"
20188 +"Wirtschaftswachstum"
20192 +"Wissenschaftlern"
20594 +"aufrechterhalten"
20608 +"auseinandersetzen"
20675 +"außerordentlich"
20676 +"außerordentlichen"
20677 +"baden-württembergische"
20678 +"baden-württembergischen"
20864 +"berücksichtigen"
21207 +"deutschsprachigen"
21300 +"durchschnittlich"
21301 +"durchschnittliche"
21302 +"durchschnittlichen"
22140 +"gesellschaftliche"
22141 +"gesellschaftlichen"
22186 +"gesundheitlichen"
22796 +"landwirtschaftlichen"
23001 +"mittelalterlichen"
23112 +"niederländische"
23113 +"niederländischen"
23114 +"niedersächsische"
23115 +"niedersächsischen"
23202 +"osteuropäischen"
23205 +"palästinensische"
23206 +"palästinensischen"
23209 +"parlamentarische"
23210 +"parlamentarischen"
23507 +"schätzungsweise"
23541 +"selbstverständlich"
23631 +"sozialdemokratische"
23632 +"sozialdemokratischen"
23724 +"stellvertretende"
23725 +"stellvertretenden"
23726 +"stellvertretender"
23789 +"südafrikanischen"
23870 +"tschetschenischen"
23966 +"unterschiedliche"
23967 +"unterschiedlichen"
23968 +"unterschiedlicher"
23984 +"unwahrscheinlich"
24050 +"verfassungswidrig"
24251 +"veröffentlichen"
24253 +"veröffentlichte"
24254 +"veröffentlichten"
24484 +"wirtschaftlichen"
24485 +"wirtschaftlicher"
24488 +"wissenschaftlich"
24489 +"wissenschaftliche"
24490 +"wissenschaftlichen"
24491 +"wissenschaftlicher"
24550 +"zeitgenössischen"
24612 +"zurückliegenden"
24614 +"zurückzuführen"
24617 +"zusammenarbeiten"
24619 +"zusammengeschlossen"
24620 +"zusammengestellt"
24680 +"Öffentlichkeitsarbeit"
24692 +"Ãœbereinstimmung"
24740 +"öffentlich-rechtlichen"
24756 +"österreichische"
24757 +"österreichischen"
24815 +"@@@mfg:Mit freundlichen Grüßen,", 1
24816 +"@@@sgdh:Sehr geehrte Damen und Herren,", 1
24818 diff --quilt /dev/null new/Dictionary/dicts/html.dict
24820 +++ new/Dictionary/dicts/html.dict
24822 +"@@@::SGML HTML::env:<@env@>@@@<@env@>", 1
24823 diff --quilt /dev/null new/Dictionary/dicts/latex.dict
24825 +++ new/Dictionary/dicts/latex.dict
24827 +##Word completion for LaTeX
24828 +"::LaTeX::\\Delta", 1000
24829 +"::LaTeX::\\Downarrow", 1000
24830 +"::LaTeX::\\Gamma", 1000
24831 +"::LaTeX::\\Im", 1000
24832 +"::LaTeX::\\Lambda", 1000
24833 +"::LaTeX::\\Leftarrow", 1000
24834 +"::LaTeX::\\Leftrightarrow", 1000
24835 +"::LaTeX::\\Omega", 1000
24836 +"::LaTeX::\\Phi", 1000
24837 +"::LaTeX::\\Pi", 1000
24838 +"::LaTeX::\\Pr", 1000
24839 +"::LaTeX::\\Psi", 1000
24840 +"::LaTeX::\\Re", 1000
24841 +"::LaTeX::\\Rightarrow", 1000
24842 +"::LaTeX::\\Sigma", 1000
24843 +"::LaTeX::\\Theta", 1000
24844 +"::LaTeX::\\Uparrow", 1000
24845 +"::LaTeX::\\Updownarrow", 1000
24846 +"::LaTeX::\\Upsilon", 1000
24847 +"::LaTeX::\\Xi", 1000
24848 +"::LaTeX::abstract", 1000
24849 +"::LaTeX::\\acute ", 1000
24850 +"::LaTeX::\\address", 1000
24851 +"::LaTeX::\\aleph", 1000
24852 +"::LaTeX::\\alpha", 1000
24853 +"::LaTeX::\\amalg", 1000
24854 +"::LaTeX::\\angle", 1000
24855 +"::LaTeX::\\approx", 1000
24856 +"::LaTeX::\\arccos", 1000
24857 +"::LaTeX::\\arcsin", 1000
24858 +"::LaTeX::\\arctan", 1000
24859 +"::LaTeX::\\arg", 1000
24860 +"::LaTeX::article", 1000
24861 +"::LaTeX::\\ast", 1000
24862 +"::LaTeX::\\asymp", 1000
24863 +"::LaTeX::\\author", 1000
24864 +"::LaTeX::\\backslash", 1000
24865 +"::LaTeX::\\bar", 1000
24866 +"::LaTeX::\\begin", 1000
24867 +"::LaTeX::\\beta", 1000
24868 +"::LaTeX::\\bibitem", 1000
24869 +"::LaTeX::\\bigcap", 1000
24870 +"::LaTeX::\\bigcirc", 1000
24871 +"::LaTeX::\\bigcup", 1000
24872 +"::LaTeX::\\bigodot ", 1000
24873 +"::LaTeX::\\bigoplus", 1000
24874 +"::LaTeX::\\bigotimes", 1000
24875 +"::LaTeX::\\bigsqcup", 1000
24876 +"::LaTeX::\\bigtriangledown", 1000
24877 +"::LaTeX::\\bigtriangleup", 1000
24878 +"::LaTeX::\\biguplus", 1000
24879 +"::LaTeX::\\bigvee ", 1000
24880 +"::LaTeX::\\bigwedge ", 1000
24881 +"::LaTeX::book", 1000
24882 +"::LaTeX::\\bot", 1000
24883 +"::LaTeX::\\breve", 1000
24884 +"::LaTeX::\\bullet", 1000
24885 +"::LaTeX::\\cap", 1000
24886 +"::LaTeX::\\caption", 1000
24887 +"::LaTeX::\\cdot", 1000
24888 +"::LaTeX::\\center", 1000
24889 +"::LaTeX::\\centering", 1000
24890 +"::LaTeX::\\chapter", 1000
24891 +"::LaTeX::\\check", 1000
24892 +"::LaTeX::\\choose", 1000
24893 +"::LaTeX::\\circ", 1000
24894 +"::LaTeX::\\cite", 1000
24895 +"::LaTeX::\\clubsuit", 1000
24896 +"::LaTeX::\\coprod", 1000
24897 +"::LaTeX::\\cos", 1000
24898 +"::LaTeX::\\cosh", 1000
24899 +"::LaTeX::\\cot", 1000
24900 +"::LaTeX::\\coth", 1000
24901 +"::LaTeX::\\csc", 1000
24902 +"::LaTeX::\\cup", 1000
24903 +"::LaTeX::\\dagger", 1000
24904 +"::LaTeX::\\dashv", 1000
24905 +"::LaTeX::\\date", 1000
24906 +"::LaTeX::\\ddagger", 1000
24907 +"::LaTeX::\\ddot", 1000
24908 +"::LaTeX::\\deg", 1000
24909 +"::LaTeX::\\delta", 1000
24910 +"::LaTeX::description", 1000
24911 +"::LaTeX::\\det", 1000
24912 +"::LaTeX::\\diamond", 1000
24913 +"::LaTeX::\\diamondsuit", 1000
24914 +"::LaTeX::\\dim", 1000
24915 +"::LaTeX::\\displaymath", 1000
24916 +"::LaTeX::\\div", 1000
24917 +"::LaTeX::document", 1000
24918 +"::LaTeX::\\documentclass", 1000
24919 +"::LaTeX::\\documentstyle", 1000
24920 +"::LaTeX::\\dot", 1000
24921 +"::LaTeX::\\dots", 1000
24922 +"::LaTeX::\\downarrow", 1000
24923 +"::LaTeX::\\downarrow", 1000
24924 +"::LaTeX::\\downarrow", 1000
24925 +"::LaTeX::\\ell", 1000
24926 +"::LaTeX::\\emptyset", 1000
24927 +"::LaTeX::\\end", 1000
24928 +"::LaTeX::enumerate", 1000
24929 +"::LaTeX::eqnarray", 1000
24930 +"::LaTeX::equation", 1000
24931 +"::LaTeX::\\equiv", 1000
24932 +"::LaTeX::\\eta", 1000
24933 +"::LaTeX::\\exists", 1000
24934 +"::LaTeX::\\exp", 1000
24935 +"::LaTeX::figure", 1000
24936 +"::LaTeX::\\flat", 1000
24937 +"::LaTeX::\\footnote", 1000
24938 +"::LaTeX::\\forall", 1000
24939 +"::LaTeX::\\frac", 1000
24940 +"::LaTeX::\\frown", 1000
24941 +"::LaTeX::\\gamma", 1000
24942 +"::LaTeX::\\gcd", 1000
24943 +"::LaTeX::\\geq", 1000
24944 +"::LaTeX::\\gg", 1000
24945 +"::LaTeX::\\grave", 1000
24946 +"::LaTeX::\\hat", 1000
24947 +"::LaTeX::\\hbar", 1000
24948 +"::LaTeX::\\hbar", 1000
24949 +"::LaTeX::\\heartsuit", 1000
24950 +"::LaTeX::\\hom", 1000
24951 +"::LaTeX::\\imath", 1000
24952 +"::LaTeX::\\in", 1000
24953 +"::LaTeX::\\include", 1000
24954 +"::LaTeX::\\inf", 1000
24955 +"::LaTeX::\\infty", 1000
24956 +"::LaTeX::\\int", 1000
24957 +"::LaTeX::\\iota", 1000
24958 +"::LaTeX::\\item", 1000
24959 +"::LaTeX::itemize", 1000
24960 +"::LaTeX::\\jmath", 1000
24961 +"::LaTeX::\\kappa", 1000
24962 +"::LaTeX::\\ker", 1000
24963 +"::LaTeX::\\ki", 1000
24964 +"::LaTeX::\\label", 1000
24965 +"::LaTeX::\\langle", 1000
24966 +"::LaTeX::\\lceil", 1000
24967 +"::LaTeX::\\leftarrow", 1000
24968 +"::LaTeX::\\leftharpoondown", 1000
24969 +"::LaTeX::\\leftharpoonup", 1000
24970 +"::LaTeX::\\leftrightarrow", 1000
24971 +"::LaTeX::\\leq", 1000
24972 +"::LaTeX::\\letter", 1000
24973 +"::LaTeX::\\lfloor", 1000
24974 +"::LaTeX::\\lg", 1000
24975 +"::LaTeX::\\lim", 1000
24976 +"::LaTeX::\\liminf", 1000
24977 +"::LaTeX::\\limsup", 1000
24978 +"::LaTeX::\\ll", 1000
24979 +"::LaTeX::\\ln", 1000
24980 +"::LaTeX::\\log", 1000
24981 +"::LaTeX::\\maketitle", 1000
24982 +"::LaTeX::\\mapsto", 1000
24983 +"::LaTeX::\\math", 1000
24984 +"::LaTeX::\\max", 1000
24985 +"::LaTeX::\\mbox", 1000
24986 +"::LaTeX::\\mid", 1000
24987 +"::LaTeX::\\min", 1000
24988 +"::LaTeX::\\minipage", 1000
24989 +"::LaTeX::\\mp", 1000
24990 +"::LaTeX::\\mu", 1000
24991 +"::LaTeX::\\nabla", 1000
24992 +"::LaTeX::\\natural", 1000
24993 +"::LaTeX::\\nearrow", 1000
24994 +"::LaTeX::\\neg", 1000
24995 +"::LaTeX::\\newcommand", 1000
24996 +"::LaTeX::\\ni", 1000
24997 +"::LaTeX::\\not", 1000
24998 +"::LaTeX::\\nu", 1000
24999 +"::LaTeX::\\nwarrow", 1000
25000 +"::LaTeX::\\odot", 1000
25001 +"::LaTeX::\\oint", 1000
25002 +"::LaTeX::\\omega", 1000
25003 +"::LaTeX::\\ominus", 1000
25004 +"::LaTeX::\\onecolumn", 1000
25005 +"::LaTeX::\\oplus", 1000
25006 +"::LaTeX::\\oslash", 1000
25007 +"::LaTeX::\\otimes", 1000
25008 +"::LaTeX::\\overbrace", 1000
25009 +"::LaTeX::\\overleftarrow", 1000
25010 +"::LaTeX::\\overline", 1000
25011 +"::LaTeX::\\overrightarrow", 1000
25012 +"::LaTeX::\\parallel", 1000
25013 +"::LaTeX::\\partial", 1000
25014 +"::LaTeX::\\perp", 1000
25015 +"::LaTeX::\\phi", 1000
25016 +"::LaTeX::\\pi", 1000
25017 +"::LaTeX::\\pm", 1000
25018 +"::LaTeX::\\prec", 1000
25019 +"::LaTeX::\\preceq", 1000
25020 +"::LaTeX::\\prime", 1000
25021 +"::LaTeX::\\prod ", 1000
25022 +"::LaTeX::\\propto", 1000
25023 +"::LaTeX::\\psi", 1000
25024 +"::LaTeX::\\qquad", 1000
25025 +"::LaTeX::\\quad", 1000
25026 +"::LaTeX::\\rangle", 1000
25027 +"::LaTeX::\\rceil", 1000
25028 +"::LaTeX::\\ref", 1000
25029 +"::LaTeX::\\renewcommand", 1000
25030 +"::LaTeX::report", 1000
25031 +"::LaTeX::\\rfloor", 1000
25032 +"::LaTeX::\\rho", 1000
25033 +"::LaTeX::\\rightarrow", 1000
25034 +"::LaTeX::\\rightharpoondown", 1000
25035 +"::LaTeX::\\rightharpoonup", 1000
25036 +"::LaTeX::\\searrow", 1000
25037 +"::LaTeX::\\sec", 1000
25038 +"::LaTeX::\\section", 1000
25039 +"::LaTeX::\\setminus", 1000
25040 +"::LaTeX::\\sharp", 1000
25041 +"::LaTeX::\\sigma", 1000
25042 +"::LaTeX::\\sim", 1000
25043 +"::LaTeX::\\simeq", 1000
25044 +"::LaTeX::\\sin", 1000
25045 +"::LaTeX::\\sinh", 1000
25046 +"::LaTeX::\\smallint", 1000
25047 +"::LaTeX::\\smile", 1000
25048 +"::LaTeX::\\spadesuit", 1000
25049 +"::LaTeX::\\sqcap", 1000
25050 +"::LaTeX::\\sqcup", 1000
25051 +"::LaTeX::\\sqsubseteq", 1000
25052 +"::LaTeX::\\sqsupseteq", 1000
25053 +"::LaTeX::\\star", 1000
25054 +"::LaTeX::\\subsection", 1000
25055 +"::LaTeX::\\subset", 1000
25056 +"::LaTeX::\\subseteq", 1000
25057 +"::LaTeX::\\succ", 1000
25058 +"::LaTeX::\\succeq", 1000
25059 +"::LaTeX::\\sum", 1000
25060 +"::LaTeX::\\sup", 1000
25061 +"::LaTeX::\\supset", 1000
25062 +"::LaTeX::\\supseteq", 1000
25063 +"::LaTeX::\\surd", 1000
25064 +"::LaTeX::\\swarrow", 1000
25065 +"::LaTeX::\\table", 1000
25066 +"::LaTeX::\\tabular", 1000
25067 +"::LaTeX::\\tan", 1000
25068 +"::LaTeX::\\tanh", 1000
25069 +"::LaTeX::\\tau", 1000
25070 +"::LaTeX::\\text", 1000
25071 +"::LaTeX::\\thebibliography", 1000
25072 +"::LaTeX::\\theta", 1000
25073 +"::LaTeX::\\tilde", 1000
25074 +"::LaTeX::\\times", 1000
25075 +"::LaTeX::\\today", 1000
25076 +"::LaTeX::\\top", 1000
25077 +"::LaTeX::\\triangle", 1000
25078 +"::LaTeX::\\triangleleft ", 1000
25079 +"::LaTeX::\\triangleright", 1000
25080 +"::LaTeX::\\twocolumn", 1000
25081 +"::LaTeX::\\underbrace", 1000
25082 +"::LaTeX::\\underline", 1000
25083 +"::LaTeX::\\uparrow", 1000
25084 +"::LaTeX::\\uparrow", 1000
25085 +"::LaTeX::\\uparrow", 1000
25086 +"::LaTeX::\\updownarrow", 1000
25087 +"::LaTeX::\\updownarrow", 1000
25088 +"::LaTeX::\\updownarrow", 1000
25089 +"::LaTeX::\\uplus", 1000
25090 +"::LaTeX::\\upsilon", 1000
25091 +"::LaTeX::\\usepackage", 1000
25092 +"::LaTeX::\\varepsilon", 1000
25093 +"::LaTeX::\\varphi", 1000
25094 +"::LaTeX::\\varpi", 1000
25095 +"::LaTeX::\\varsigma", 1000
25096 +"::LaTeX::\\vartheta", 1000
25097 +"::LaTeX::\\vdash", 1000
25098 +"::LaTeX::\\vec", 1000
25099 +"::LaTeX::\\vee", 1000
25100 +"::LaTeX::\\vspace", 1000
25101 +"::LaTeX::\\wedge", 1000
25102 +"::LaTeX::\\widehat", 1000
25103 +"::LaTeX::\\widetilde", 1000
25104 +"::LaTeX::\\wp", 1000
25105 +"::LaTeX::\\wr", 1000
25106 +"::LaTeX::\\zeta", 1000
25108 +##Expansions for LaTeX
25109 +"@@@::LaTeX::it:\\begin{itemize}
25114 +"@@@::LaTeX::en:\\begin{enumerate}
25119 +"@@@::LaTeX::de:\\begin{description}
25121 +\\end{description}
25124 +"@@@::LaTeX::b:\\begin{@-env@}
25129 +"@@@::LaTeX::bf:{\\bf @@@}", 1
25130 +"@@@::LaTeX::em:{\\em @@@}", 1
25131 diff --quilt /dev/null new/Dictionary/dict_todo.txt
25133 +++ new/Dictionary/dict_todo.txt
25135 +TODO list for nedit with dictionary enhancement
25137 +- As soon as arrays (a[0] .. a[1]) of strings are available,
25138 + update the dict_complete macro command (macro.c) so that this
25139 + type is returned. Also updata macro function complete_word so
25140 + that all possible completions (nearest, global and language
25141 + specific) are put into one array, duplicates are removed and
25142 + (optional) everything is sorted by weight
25144 +- Somehow support comfortable editing of the dictionary to allow
25145 + changes to completions and templates. Also allow to automatically
25146 + scan through the dictionary to remove low weight entries, short
25149 +- Go away from one single,big dictionary file to a group of files
25150 + called plain.dict, cpp.dict etc. that are located somewhere like
25151 + .nedit/dictionary/ or .neditutil/dictionary/
25153 +- Find clever strategies to update the dictionary by scanning all
25154 + open files from time to time (however, keep things still simple
25157 +- Documentation! Without documentation, the user will not accept the
25158 + changes. Write documentation for the new built-in macro commands,
25159 + for the macro definitions, for the dictionary file format.
25161 +- What about identing of template expansions? Do we have to change the
25162 + routine that parses the text that should be inserted or do can this
25163 + be done with the Smart Indenting capabilities of nedit itself.
25166 +Christian Merkwirth, March 2000
25168 diff --quilt /dev/null new/Dictionary/dotnedit
25170 +++ new/Dictionary/dotnedit
25172 +nedit.macroCommands: \
25173 + Dictionary>Complete Word:Ctrl+Space::: {\n\
25174 + complete_word()\n\
25176 + Dictionary>Revert to original:Ctrl+Return::: {\n\
25177 + revert_to_keystring()\n\
25179 + Dictionary>Expand Template:Ctrl+Bracketright::: {\n\
25182 + Dictionary>Define Completion:Ctrl+Bracketleft::R: {\n\
25183 + insert_selection()\n\
25185 + Dictionary>Define Template:::R: {\n\
25186 + define_expansion()\n\
25188 + Dictionary>Scan Text:::: {\n\
25191 + Dictionary>Next Field:Ctrl+Backslash::: {\n\
25192 + goto_next_field()\n\
25194 + Dictionary>Save dictionary:::: {\n\
25197 + Dictionary>Append file to dictionary:::: {\n\
25198 + filename = string_dialog("Please enter dictionary filename" , "OK" , "Dismiss")\n\
25199 + dict_append(filename)\n\
25201 +nedit.highlightPatterns: \
25202 + Dictionary:20:0{\n\
25203 + Completion:"""[^@]":""""::String::\n\
25204 + Template:"""@@@":""""::Text Key::\n\
25205 + Namespace1:":[\\w]+::":::Preprocessor:Completion:\n\
25206 + Namespace2:"::[\\w]+::":::Preprocessor:Template:\n\
25207 + Comment:"#":"$"::Comment::\n\
25208 + Weight:"[0-9]+":::Identifier::\n\
25209 + Field:"@[@\\w\\>\\<\\.\\\\/]+@":::Text Arg:Template:\n\
25211 +nedit.languageModes: \
25212 + Dictionary:.dict::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n
25213 diff --quilt /dev/null new/Dictionary/readme.html
25215 +++ new/Dictionary/readme.html
25218 +<TITLE>Nedit Dictionary</TITLE></HEAD>
25219 +<BODY bgcolor="#FFFFFF" text="#000000" <font face="arial, helvetica">
25221 +<H1>Dictionary based word completion and shortcut expansion for nedit 5.1.1</H1>
25225 +<LI><A HREF="#INTRO">Intro</A></LI>
25226 +<LI><A HREF="#INSTALL">Download and Installation</A></LI>
25227 +<LI><A HREF="#COMPLETION">Word completion</A></LI>
25228 +<LI><A HREF="#COMPLETION2">Stepping through the dictionary (<B>NEW</B>)</A></LI>
25229 +<LI><A HREF="#EXPANSION">Template (Shortcut) expansion</A></LI>
25230 +<LI><A HREF="#EXPANSION2">Auto fill fields in expansions</A></LI>
25231 +<LI><A HREF="#FORMAT">The dictionary file</A></LI>
25232 +<LI><A HREF="#CREDITS">Credits</A></LI>
25237 +<H2><A NAME="INTRO">Intro</A></H2>
25239 +<P>Nedit is my favorite editor for X-Windows. Though equipped with a lot of
25240 +useful features, it's still lean and fast, especially compared to the good old Emacs.
25241 +Nedit can be obtainded for free from <A HREF="http://www.nedit.org">
25242 +this website</A>.</P>
25244 +<P>I wrote an extension to nedit version 5.1.1, giving nedit the ability to quickly locate
25245 +strings just by giving the beginning characters inside a personal dictionary which is loaded
25246 +from the file <tt>.neditdict</tt>. This feature can be used at least for two tasks which might
25247 +come in very useful if you are a programmer or the like and tired of typing the same long words
25248 +(e.g. names of functions, library calls, variables etc.) again and again:
25250 +<LI><A HREF="#COMPLETION">Word completion</A></LI>
25251 +<LI><A HREF="#EXPANSION">Template (Shortcut) expansion</A></LI>
25255 +<P>The contributed patch is based on both a mixture of C code, which is compiled into the
25256 +nedit binary, and some code written in the nedit macro language. The C code part just adds
25257 +a couple of <A HREF="#COMMANDS">new macro commands</A> to nedit's built-in macro language,
25258 +which are used in some nice macros that are usually bound to accelerator keys (like Ctrl-Space
25259 +or the like) to allow for fast access.</P>
25261 +<P>The reason to apply only small changes to the nedit source code and implement a large part
25262 +of the dictionary stuff in the macro language was to allow the user to customize or improve
25263 +things if needed.</P>
25265 +<H2><A NAME="COMPLETION">Word completion</A></H2>
25267 +<P>A <EM>Complete word</EM> macro that inserts the nearest match to a given beginning was part
25268 +of the official nedit distribution for a long time. I liked this feature very much, but still
25269 +there were some shortcomings that bugged me. Possible completions were taken only from the
25270 +text of the current window. But when you begin to edit a new or very short file, the word that
25271 +you like to be completed is not given within the current text. And even if it is given, it may
25272 +be to far away from the cursor position. So I thought of some dictionary that stores the words
25273 +that ones uses. And since these are quite sure a lot of words, it is a good idea to attach a weight
25274 +to each word in the dictionary that is related to the typing usage frequency of this word so that
25275 +the hit rate will be optimized.</P>
25277 +<P>Assume the words <strong>dictionary</strong>, <strong>dictator</strong> and <strong>dictate</strong> are
25278 +stored in your personal dictionary, with relative weights 23, 2 and 3. Typing <strong>dict</strong> and invoking
25279 +the macro <em>Complete Word</em> (e.g. by typing Ctrl-Space) will complete to <strong>dictionary</strong>,
25280 +since <strong>dictionary</strong> has the greatest weight (actually, things are little bit more difficult,
25281 +there are several parameters which control the behaviour of <em>Complete Word</em>).
25284 +<P>The dictionary is sensitive to the current language mode. When a language mode other than <strong>Plain</strong>
25285 +is active, words are inserted into a separate namespace for this language. <em>Complete Word</em> first
25286 +searches for matches in the namespace of the current language mode. If there's no match, the global namespace is
25289 +<P>The more the <em>Complete word</em> macro is used, the quicker the dictionary will grow (and adapt).
25290 +To manually insert a word (or even a whole sentence) into the dictionary, select the text to insert and
25291 +type <EM>Ctrl-Bracketleft</EM>.</P>
25293 +<H2><A NAME="COMPLETION2">Stepping through the dictionary</A></H2>
25295 +<P>Now it's possible to step through various possible completions (in order of ascending weight)
25296 +by repeatedly invoking the <em>Complete word</em> macro. The first completion offered is the
25297 +nearest match taken from the current text, pretty much like the old-style complete word. Then
25298 +the language mode specific namespace will be searched for possible matches. Last but not least,
25299 +the global namespace will be searched. The number of possible matches can be changed in the macro
25300 +definitions according to the user's preferences.</P>
25302 +<P>I was looking for a proper method to let the dictionary learn which words the user uses most. The rule
25303 +I coded into the macro definitions is now as follows: Each time you invoke the complete word macro, it looks
25304 +if you made a successful completion previously. If there was a successful completion, this string is inserted
25305 +into the dictionary to reinforce weights or just learn the new string. But how does the macro detect if the
25306 +last completion was successful, i.e. the user got what he wanted ? Simply by the fact that you did nothing
25307 +but going on typing. If you step through the possible completions to some given characters and you are not
25308 +satisfied with the solutions provided, please use the <EM>Revert to original</EM> macro. This will delete
25309 +the proposed completion, just giving the characters that you typed in. And it tells the other macro routines
25310 +that there was no successful completion. Otherwise, the last completion that was offered is taken to be a
25314 +<H2><A NAME="EXPANSION">Template (Shortcut) expansion</A></H2>
25317 +Template (Shortcut) expansion is a very simple, yet powerful feature. For example, typing <strong>cl</strong> and invoking
25318 +the macro <em>Expand</em> (e.g. by typing Ctrl-Bracketright) will replace <strong>cl</strong> by:
25321 +<font color="#7a0c0c"><b>class </b></font><font color="#000000"><b><i>@-name@ </i></b></font><font color="#000000"><b>{
25322 + </b></font><font color="#7a0c0c"><b>private</b></font><font color="#000000">:
25323 + </font><font color="#000000"><b><i>@@@
25325 + </i></b></font><font color="#7a0c0c"><b>public</b></font><font color="#000000">:
25326 + </font><font color="#000000"><b><i>@-name@</i></b></font><font color="#1530b0"><b>()</b></font><font color="#000000">;
25327 + ~</font><font color="#000000"><b><i>@-name@</i></b></font><font color="#1530b0"><b>()</b></font><font color="#000000">;
25332 +<P>A sequence of type <tt>@*@</tt> is used as a placeholder or <B>field</B>in the template.
25333 +Invoking the <em>Next field</em> macro (Ctrl-Backslash) positions the cursor at
25334 +the next <tt>@*@</tt> section, so you can quickly fill these parts of a template as
25335 +if it was a form sheet.</P>
25337 +<P>Like word completion, this feature is language mode sensitive. This allows to use the same abbreviations
25338 +in different language modes. Templates can only be defined manually by selecting the desired code
25339 +segment and invoking the macro <em>Define Expansion</em>. It is not possible to
25340 +use the same abbreviation (e.g. <B>cl</B>) twice, it has to be unique.</P>
25342 +<H2><A NAME="EXPANSION2">Auto fill fields in expansions (<B>NEW</B>)</A></H2>
25344 +<P>A field <tt>@@@</tt> is a general purpose field. Using the above mentioned macros, one
25345 +can quickly jump to this positions and fill in. Fields of type <b><tt>@-name@</tt></b> are
25346 +treated somewhat different. These field are called <EM>auto fill fields</EM>. If the user
25347 +fills in the first named field of a template and invokes the <em>Next field</em> macro,
25348 +all other named fields with the same name tag are replaced automatically with this text.
25349 +In the above class example, the class name will be inserted at any position <b><tt>@-name@</tt></b>
25352 +<P>There are some additional types of fields. First, fields of type <b><tt>@<file@</tt></b>
25353 +insert text from file called 'file' at the given position (even recursively!). Fields of type
25354 +<b><tt>@>temp@</tt></b> try to expand template 'temp' and the insert the expanded text at
25358 +<H2><A NAME="INSTALL">Download</A></H2>
25360 +<P>Here is the dictionary enhanced version of nedit <strong>5.1.1</strong>:</p>
25365 +<LI><A HREF="nedit-5.1.1.tgz">5.1.1 sources as tar.gz file (~620 kB)</A></LI>
25367 +<LI>Precompiled binaries (nedit/nc)
25369 +<LI><A HREF="nedit511_sgi.tgz"> 5.1.1 Executables for SGI IRIX 6.5 (n32) (~420 kB)</A></LI>
25370 +<LI><A HREF="nedit511_solaris.tgz"> 5.1.1 Executables for Solaris (~320 kB)</A></LI>
25372 +<LI>Macro definitions
25374 +<LI><A HREF="dotnedit">Snippet from .nedit (include into your existing .nedit file)</A></LI>
25375 +<LI><A HREF="dictionary.nm">dictionary.nm (put into your home directory)</A></LI>
25377 +<LI>Startup dictionaries:
25379 +<LI><A HREF="dicts/cpp.dict">Completions and expansions for C/C++</A></LI>
25380 +<LI><A HREF="dicts/latex.dict">Completions and expansions for LaTeX</A></LI>
25381 +<LI><A HREF="dicts/german_latex.dict">German words containing umlaut, prepared for use with LaTeX</A></LI>
25382 +<LI><A HREF="dicts/german.dict">Frequently used german words (weighted)</A></LI>
25383 +<LI><A HREF="dicts/english_top.dict">10000 most frequently used english words (without weights)</A></LI>
25384 +<LI><A HREF="dicts/german_top.dict">10000 most frequently used german words (without weights)</A></LI>
25388 +<H3>Quick setup</H3>
25391 +To install, get the source code from the above section and unpack it. It contains all necessary
25392 +stuff to build nedit and set up the dictionary. Unpack it and change to the distribution directory.
25393 +Issuing <CODE>make xxx</CODE> (with xxx filled in for your system)
25394 +should hopefully do it. If you are not afraid of collisions between your existing nedit preferences and
25395 +the new ones, simply change to the Dictionary directory and issue <CODE>source setup.sh</CODE>. Your old settings
25396 +will be save to files <EM>.nedit.O</EM> and <EM>.neditmacro.O</EM>. This should give a minimal setup to
25397 +work with the dictionary. Please don't forget to save these preferences with <EM>Preferences->Save Defaults</EM> </P>
25399 +<H3>Manual setup</H3>
25401 +<p>However, up to now, there's no really elegant
25402 +method for merging old and new nedit settings. So if one wants to do things manually, start as stated above and
25403 +make the executable, then append dictionary.nm to .neditmacro (e.g. by <CODE>cd $HOME; cat dictionary.nm >> .neditmacro</CODE>) and create the
25404 +dictionary file (e.g. by <CODE>cd $HOME; cat cpp.dict latex.dict >> .neditdict</CODE>). You can even start with an
25405 +empty or nonexisting dictionary file, it will be created automatically.</p>
25407 +<p>The only thing left is to include the new macro definitions into your <EM>.nedit</EM>
25408 +file. Please make sure that there are no colliding keybindings with your old setup. New keybindings are
25409 +<EM>Ctrl-Space</EM> and <EM>Ctrl-Bracketleft</EM>, <EM>Ctrl-Bracketright</EM>, <EM>Ctrl-Backslash</EM>
25410 +and <EM>Ctrl-Return</EM>.
25411 +Of course, you can change the keybindings according to your preferences.
25412 +To include the new macro definitions, issue <CODE>nedit -import dotnedit</CODE> and save new settings with
25413 +<EM>Preferences->Save Defaults</EM>.</P>
25417 +<H2><A NAME="FORMAT">The dictionary file</A></H2>
25419 +<P>The dictionary will be loaded from a the file <tt>.neditdict</tt>. Its format is human readable, so it can be modified
25420 +by hand if needed. If no file <tt>.neditdict</tt> is present, it will be created automatically.
25423 +<H3>General Format</H3>
25425 +<p>The dictionary file format is quite simple, each string is put into quotes, then comes a comma and the integer weight.
25426 +The quoted string can occupy several lines, contain linefeeds etc. A <tt>\</tt> escapes any following character, so in order to get a quote,
25427 +simply use <tt>\"</tt>, to get a backslash, use <tt>\\</tt>.
25429 +"String1", weight1
25430 +"String2", weight2
25431 +"String3", weight3
25432 +"String4", weight4
25436 +<H3>Complete word format</H3>
25438 +<p>The syntax for word completion is as follows:
25444 +"::C++::class", 15
25445 +"::C++::double", 34
25446 +"::LaTeX::document", 12
25447 +"::LaTeX::itemize", 4
25448 +"::LaTeX::item", 12
25451 +The first three lines define words in the global namespace. Words in language mode specific namespaces begin with a <tt>::</tt>,
25452 +followed by the language mode and another <tt>::</tt>, and finally the word itself.</P>
25454 +<H3>Template (Shortcut) expansion format</H3>
25457 +"@@@::C++::cl:class @-name@ {
25465 +"@@@::LaTeX::it:\\begin{itemize}
25472 +A expansion entry begins with <tt>@@@</tt>, followed by <tt>::</tt> language mode name <tt>::</tt> and the
25473 +shortcut keyword, terminated with a single <tt>:</tt>. After this comes the expansion text.
25474 +Any sequence of type <tt>@*@</tt> is called
25475 +a field, which is just a position in the template where the user usually fills in text, e.g.
25476 +the body of a loop, the name of a class etc. Within the dictionary, these field are just
25477 +treated like any normal text. All functions related to template expansion and fields are
25478 +realized in the nedit macro language, so the user can change the behaviour of these macros.
25479 +E.g., it is possible to redefine the field sequence to something like <tt>%%%</tt> (of
25480 +course, every entry in the dictionary must then be changed accordingly).
25483 +<H2><A NAME="CREDITS">Credits</A></H2>
25485 +<p>Credits to <a href="http://www.cs.princeton.edu/~rs/">Robert Sedgewick</a>, who wrote some
25486 +interesing articles on <em>Ternary Search Trees</em> on which is dictionary code is strongly based.
25487 +Thanks to <a href="http://www.physik3.gwdg.de/~junge/">Lutz Junge</a> for helping me to cope with the
25488 +macro language and macro files. Also thanks to Marc Verdiesen, whose original expander contribution gave
25489 +me the idea to use the dictionary for shortcut expansion, Stefan Haehn, whose enhanced expander
25490 +code inspired me to parse the expansion string before it is inserted, and to Peter Hellwig,
25491 +who helped me supplying a german dictionary with usage frequencies.
25492 +The top 10000 and top 1000 English and German words are adapted from files provided
25493 +by the University of Leipzig in the <a href="http://wortschatz.uni-leipzig.de">Projekt deutscher Wortschatz</a>.
25494 +Any suggestions, enhancements or useful dictionaries and templates are highly welcome.
25499 +<BR><FONT SIZE=2>Copyright © 1997-2000 <A HREF="http://www.physik3.gwdg.de">DPI Göttingen</A>
25501 diff --quilt /dev/null new/Dictionary/setup.sh
25503 +++ new/Dictionary/setup.sh
25507 +# Simple setup script for the dictionary enhanced version of nedit 5.1.1
25509 +cp ${HOME}/.neditmacro ${HOME}/.neditmacro.O
25510 +cp ${HOME}/.nedit ${HOME}/.nedit.O
25512 +cat dictionary.nm >> ${HOME}/.neditmacro
25513 +cat dicts/cpp.dict dicts/latex.dict >> ${HOME}/.neditdict
25515 +../source/nedit -import dotnedit demo.cc &
25518 diff --quilt /dev/null new/source/dictionary.c
25520 +++ new/source/dictionary.c
25522 +/*******************************************************************************
25524 +* dictionary.c - dictionary extension for the nirvana editor nedit
25527 +* Germany Dec 1999
25529 +* Copyright (C) Christian Merkwirth
25531 +* This is free software; you can redistribute it and/or modify it under the *
25532 +* terms of the GNU General Public License as published by the Free Software *
25533 +* Foundation; either version 2 of the License, or (at your option) any later *
25536 +* This software is distributed in the hope that it will be useful, but WITHOUT *
25537 +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
25538 +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
25539 +* for more details. *
25541 +* You should have received a copy of the GNU General Public License along with *
25542 +* software; if not, write to the Free Software Foundation, Inc., 59 Temple *
25543 +* Place, Suite 330, Boston, MA 02111-1307 USA *
25545 +* Written by Christian Merkwirth
25547 +*******************************************************************************/
25550 +#include <stdio.h>
25551 +#include <stdlib.h>
25552 +#include <string.h>
25554 +#include "../util/utils.h"
25556 +#include "dictionary.h"
25557 +#include "ternary_search_tree.h"
25559 +int dictionary_loaded = 0; /* = 1 => dictionary was loaded from file */
25560 +int dictionary_modified = 0; /* = 1 => dictionary was */
25561 +int dictionary_auto_save = 0; /* = 1 => save dictionary automatically (on exit/window close) */
25562 +int dictionary_cumulative_save = 0; /* > 0 => save dictionary after every dictionary_cumulative_save insertion operations */
25563 +char* dictionary_filename = NULL; /* == NULL => the default dictionary name is used */
25565 +static FILE* fid = NULL;
25566 +static int default_tree_for_dictionary = 0;
25568 +static void save_entry(const char* s, const unsigned long weight);
25570 +int loaddict(void);
25571 +int savedict(void);
25572 +int appenddict(char* filename);
25573 +int load_dict(const char* filename);
25574 +int save_dict(const char* filename);
25575 +void cleanup_dict(void);
25576 +int insert_dict(const char* s, unsigned long weight);
25577 +int complete_dict(const char* s, char** S, const long minimum_chars, const int maxmatches);
25578 +unsigned long dict_is_element(const char* const s);
25580 +int insert_dict(const char* s, unsigned long weight)
25582 + return insert_string(s, weight, default_tree_for_dictionary);
25585 +/* Search tree to see if we can complete the string s
25587 + s - beginning of word to complete (terminated by '\0'
25588 + (*S) - (output) string with the characters needed to complete s to the full word, allocated by the
25589 + called function, no deallocation is needed, so better copy string
25591 + ambiguity_tolerance - parameter ranging within ]0..1] that determines how much ambiguity is allowed
25592 + when completing the word, 1 means allow no ambiguity at all, smaller values
25593 + allow for more ambiguity
25595 + minimum_chars - minimal number of chars s must have before completion is tried (default should be 0)
25597 +int complete_dict(const char* s, char** S, const long minimum_chars, const int maxmatches)
25600 + static char* empty_string = "";
25602 + if (strlen(s) < minimum_chars) {
25603 + *S = empty_string;
25605 + status = complete_string(s, S, maxmatches, default_tree_for_dictionary);
25606 + if (status <= 0) {
25607 + *S = empty_string;
25614 +unsigned long dict_is_element(const char* const s)
25616 + return string_is_element(s, default_tree_for_dictionary);
25619 +void cleanup_dict(void)
25621 + cleanup_tree(default_tree_for_dictionary);
25624 + dictionary_loaded = 0;
25625 + dictionary_modified = 0;
25628 +/* small wrapper to load dictionary from default dictionary file */
25629 +int loaddict(void)
25633 + if (dictionary_filename == NULL) {
25634 + if ((dictionary_filename = strdup(GetRCFileName(NEDIT_DICT))) == NULL)
25638 + if (!dictionary_loaded) {
25639 + status = load_dict(dictionary_filename);
25641 + /* anyway, assume dictionary is loaded (maybe there's no file $HOME/$DEFAULT_DICTIONARY_NAME) */
25642 + dictionary_loaded = 1;
25648 +/* small wrapper to save dictionary to file $HOME/$DEFAULT_DICTIONARY_NAME */
25649 +int savedict(void)
25653 + if (dictionary_filename == NULL) {
25654 + if ((dictionary_filename = strdup(GetRCFileName(NEDIT_DICT))) == NULL)
25658 + if (dictionary_modified) {
25659 + char* backup_name = NULL;
25661 + if (!dictionary_loaded)
25664 + backup_name = malloc(strlen(dictionary_filename) + 2);
25666 + if (backup_name) {
25667 + strcpy(backup_name, dictionary_filename);
25668 + strcat(backup_name, "~");
25669 + rename(dictionary_filename, backup_name);
25670 + free(backup_name);
25673 + status = save_dict(dictionary_filename);
25675 + dictionary_modified = 0;
25681 +int appenddict(char* filename)
25685 + if (filename == NULL)
25688 + loaddict(); /* first load dictionary from default dictionary file */
25689 + status = load_dict(filename); /* load additional dictionary */
25690 + if (status == 0) {
25691 + dictionary_modified = 1; /* mark dictionary as modified */
25700 + load dictionary from file filename
25701 + format of dictfile :
25714 + In the quoted string, any character can be escaped by an \, so
25718 + returns 0 on SUCCESS, otherwise failure
25720 +int load_dict(const char* filename)
25723 + long count = 0; /* length of current line */
25725 + char* line = NULL;
25726 + long linelen = 512;
25732 + if (filename == NULL)
25735 + fid = fopen(filename, "r");
25740 + line = (char*) malloc((linelen+4) * sizeof(char));
25741 + if (line == NULL)
25747 + goto success_exit;
25748 + else if (c == '\"')
25749 + goto read_string;
25751 + goto expecting_quote;
25756 + static int escaped = 0;
25761 + if (!escaped && (c == '\\')) {
25766 + if (!escaped && (c == '\"')) {
25767 + line[count] = '\0'; /* add terminating zero */
25768 + goto expecting_comma;
25771 + line[count++] = c;
25773 + if (count >= linelen) {
25775 + line = (char*) realloc(line, (linelen+4) * sizeof(char));
25776 + if (line == NULL)
25785 + insert_string(line, 1, default_tree_for_dictionary); /* assume weight 1 */
25786 + goto success_exit;
25789 + goto read_number;
25791 + insert_string(line, 1, default_tree_for_dictionary); /* assume weight 1 */
25792 + goto read_string;
25797 + if (fscanf(fid, "%ld", &weight) != 1)
25803 + insert_string(line, weight, default_tree_for_dictionary);
25805 + goto expecting_quote;
25823 +static void save_entry(const char* s, const unsigned long weight)
25827 + if ((*s == '"') || (*s == '\\')) /* escape quote and backslash chars */
25830 + putc(*(s++), fid);
25832 + fprintf(fid, "\", %lu\n", weight);
25836 + save dictionary to file filename
25837 + format of dictfile :
25850 + In the quoted string, any character can be escaped by an \, so
25854 + returns 0 on SUCCESS, otherwise failure
25856 +int save_dict(const char* filename)
25858 + void (*func)() = (&save_entry);
25860 + if (filename != 0) {
25861 + fid = fopen(filename, "w");
25864 + traverse(default_tree_for_dictionary, func);
25869 + return -1; /* could not open file filename */
25873 + return -2; /* no filename given */
25876 +#ifdef DEB_STAND_ALONE_DICT
25877 +/* for debugging, dictionary.c can be compiled to a standalone application */
25879 +static char line[65536];
25880 +static char* completion;
25882 +/* recursivly traverse tree (for testing purposes) */
25884 +void testing(const char* s, const unsigned long weight)
25886 + printf("%s : %d\n", s, weight);
25890 +int main(int argc, char** argv)
25893 + void (*func)() = (&testing);
25899 + for(i=0; i < 1; i++) {
25900 + load_dict(argv[1]);
25901 + fprintf(stderr, "Loaded dictionary from file : %s \n", argv[1]);
25902 + traverse(default_tree_for_dictionary, func);
25903 + fprintf(stderr, "Cleaning up dictionary\n");
25908 + long matches = 0;
25910 + load_dict(argv[1]);
25912 + matches = complete_string(argv[2], S, 0.0, 8, default_tree_for_dictionary);
25914 + printf("Found %d matches\n", matches);
25915 + for(i=0; i<matches;i++) {
25916 + printf("%s\n", S[i]);
25927 +#undef DEFAULT_DICTIONARY_NAME
25929 diff --quilt /dev/null new/source/dictionary.h
25931 +++ new/source/dictionary.h
25933 +#ifndef DICTIONARY_H
25934 +#define DICTIONARY_H
25936 +extern char* dictionary_filename; /* == NULL => the default dictionary name is used */
25937 +extern int dictionary_loaded; /* = 1 => dictionary was loaded from file */
25938 +extern int dictionary_modified; /* = 1 => dictionary was modified */
25939 +extern int dictionary_auto_save; /* = 1 => save dictionary automatically (on exit/window close) */
25940 +extern int dictionary_cumulative_save; /* > 0 => save dictionary after every dictionary_cumulative_save insertion operations */
25942 +extern int insert_dict(const char* s, unsigned long weight);
25943 +extern int complete_dict(const char* s, char** S, const long minimum_chars, const int maxmatches);
25944 +extern unsigned long dict_is_element(const char* const s);
25946 +extern int load_dict(const char* filename);
25947 +extern int save_dict(const char* filename);
25948 +extern void cleanup_dict(void);
25950 +extern int loaddict(void);
25951 +extern int savedict(void);
25952 +extern int appenddict(char* filename);
25954 diff --quilt old/source/macro.c new/source/macro.c
25955 --- old/source/macro.c
25956 +++ new/source/macro.c
25957 @@ -59,6 +59,8 @@ static const char CVSID[] = "$Id: macro.
25958 #include "rangeset.h"
25959 #include "patternMatch.h"
25960 #include "regularExp.h"
25961 +#include "dictionary.h"
25965 #include <stdlib.h>
25966 @@ -5706,6 +5708,260 @@ static int getMatchingMS(WindowInfo *win
25970 +/* New built-in macro commands for dictionary code Christian Merkwirth 2000 */
25972 +/* Insert a string into the acutal dictionary */
25973 +/* Syntax : dictinsert(string) % assuming weight = 1 */
25974 +/* dictinsert(string, weight) */
25975 +static int dictinsertMS(WindowInfo *window, DataValue *argList, int nArgs,
25976 + DataValue *result, char **errMsg)
25978 + static long nr_insertions = 0;
25981 + char stringStorage[25], *string;
25983 + /* Validate arguments and convert to int */
25984 + if (nArgs < 1) { /* we expect one or more input argument */
25985 + return wrongNArgsErr(errMsg);
25988 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
25993 + if (!readIntArg(argList[1], &weight, errMsg)) {
25998 + if (weight < 1) {
26004 + result->tag = INT_TAG;
26005 + result->val.n = insert_dict(string, weight);
26007 + if (result->val.n == 0) {
26008 + dictionary_modified = 1;
26011 + if (dictionary_cumulative_save > 0) {
26012 + if (nr_insertions >= dictionary_cumulative_save) {
26014 + nr_insertions = 0;
26022 +/* Test if string is an element of the acutal dictionary */
26023 +/* Syntax : weight = dictiselement(string) */
26024 +/* Output argument : (integer) weight of element */
26025 +static int dictiselementMS(WindowInfo *window, DataValue *argList, int nArgs,
26026 + DataValue *result, char **errMsg)
26028 + char stringStorage[25], *string;
26029 + unsigned long weight;
26031 + /* Validate arguments and convert to int */
26032 + if (nArgs < 1) { /* we expect one or more input argument */
26033 + return wrongNArgsErr(errMsg);
26036 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
26041 + weight = dict_is_element(string);
26043 + result->tag = INT_TAG;
26045 + if (weight > INT_MAX) {
26046 + result->val.n = INT_MAX;
26048 + result->val.n = weight;
26055 +/* Load/append file to current dictionary */
26056 +/* Syntax : dict_append(filename) */
26057 +static int dictappendMS(WindowInfo *window, DataValue *argList, int nArgs,
26058 + DataValue *result, char **errMsg)
26060 + char stringStorage[25], *string;
26062 + /* Validate arguments and convert to int */
26063 + if (nArgs < 1) { /* we expect one or more input argument */
26064 + return wrongNArgsErr(errMsg);
26067 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
26071 + result->tag = INT_TAG;
26072 + result->val.n = appenddict(string);
26077 +/* Save current acutal dictionary or control the saving behaviour of the dictionary */
26078 +/* Syntax : dict_save() => save dictionary to current filename, see dictionary.c */
26079 +/* dict_save(filename) => set dictionary filename (otherwise default filename is used) */
26080 +/* dict_save("") => return current filename as string */
26081 +/* dict_save(autoSave, cumulSave) => autoSave = "on"/"off"/"flush", cumulSave=0,1,2,3,... */
26082 +static int dictsaveMS(WindowInfo *window, DataValue *argList, int nArgs,
26083 + DataValue *result, char **errMsg)
26085 + int cumulSave = 0;
26087 + char stringStorage[25], *string;
26089 + /* Validate arguments */
26091 + if (nArgs == 0) {
26092 + result->tag = INT_TAG;
26093 + result->val.n = savedict();
26095 + } else if (nArgs == 1) {
26096 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
26100 + if ((string != NULL) && (strlen(string) > 0)) {
26101 + free(dictionary_filename);
26102 + dictionary_filename = strdup(string);
26103 + dictionary_modified = 1; /* force savedict() to write the actual dictionary */
26106 + result->tag = STRING_TAG;
26107 + AllocNString(&result->val.str, strlen(dictionary_filename)+1);
26108 + AllocNStringCpy(&result->val.str, dictionary_filename);
26111 + } else if (nArgs == 2) {
26112 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
26116 + if (!readIntArg(argList[1], &cumulSave, errMsg)) {
26121 + if (!strcmp(string, "on")) {
26122 + dictionary_auto_save = 1;
26123 + } else if (!strcmp(string, "flush")) {
26124 + dictionary_auto_save = 0;
26127 + } else /* if (!strcmp(string, "off")) */ {
26128 + dictionary_auto_save = 0;
26132 + if (cumulSave >= 0) {
26133 + dictionary_cumulative_save = cumulSave;
26135 + dictionary_cumulative_save = 0;
26140 + return wrongNArgsErr(errMsg);
26144 +/* Syntax : dict_complete(string)
26145 + dict_complete(string)
26146 + dict_complete(string, minchars)
26147 + dict_complete(string, minchars, maxmatches)
26149 + See file : dictionary.c
26151 +#define MAXMATCHES 128
26153 +static int dictcompleteMS(WindowInfo *window, DataValue *argList, int nArgs,
26154 + DataValue *result, char **errMsg)
26156 + int minchars = 0;
26157 + int maxmatches = 1;
26158 + static char *s2[MAXMATCHES]; /* at max, 128 possible completions can be returned */
26159 + static int items_left = 0; /* number of possible completions left from last search */
26161 + char stringStorage[25], *string;
26163 + /* Validate arguments and convert to int */
26165 + return wrongNArgsErr(errMsg);
26168 + if (!readStringArg(argList[0], &string, stringStorage, errMsg)) {
26173 + if (!readIntArg(argList[1], &minchars, errMsg)) {
26179 + if (!readIntArg(argList[2], &maxmatches, errMsg)) {
26184 + if (minchars < 0) {
26188 + if ((maxmatches < 1) || (maxmatches > MAXMATCHES)) {
26192 + loaddict(); /* load dict is a wrapper which loads the dictionary from file on demand */
26194 + result->tag = STRING_TAG;
26196 + if (strlen(string) > 0) { /* A string to complete is given */
26197 + items_left = complete_dict(string, s2, minchars, maxmatches); /* so invoke a new search */
26199 + if (items_left <= 0) {
26200 + AllocNString(&result->val.str, 1);
26201 + AllocNStringCpy(&result->val.str, "");
26205 + AllocNString(&result->val.str, strlen(s2[items_left])+1);
26206 + AllocNStringCpy(&result->val.str, s2[items_left]);
26208 + } else { /* An empty key string was given, but maybe there are still some matches left from last call */
26209 + if (items_left > 0) {
26211 + AllocNString(&result->val.str, strlen(s2[items_left])+1);
26212 + AllocNStringCpy(&result->val.str, s2[items_left]);
26214 + AllocNString(&result->val.str, 1);
26215 + AllocNStringCpy(&result->val.str, "");
26222 +/* end of new macros for dictionary Christian Merkwirth 2000 */
26224 static int wrongNArgsErr(char **errMsg)
26226 *errMsg = "Wrong number of arguments to function %s";
26227 diff --quilt old/source/Makefile.common new/source/Makefile.common
26228 --- old/source/Makefile.common
26229 +++ new/source/Makefile.common
26230 @@ -10,6 +10,7 @@ OBJS = nedit.o file.o menu.o window.o se
26231 rbTree.o windowTitle.o calltips.o server_common.o rangeset.o
26233 OBJS += patternMatch.o patternMatchData.o
26234 +OBJS += ternary_search_tree.o dictionary.o
26236 XLTLIB = ../Xlt/libXlt.a
26237 XMLLIB = ../Microline/XmL/libXmL.a
26238 diff --quilt old/source/Makefile.dependencies new/source/Makefile.dependencies
26239 --- old/source/Makefile.dependencies
26240 +++ new/source/Makefile.dependencies
26241 @@ -98,3 +98,7 @@ menu.o: patternMatchData.h
26242 preferences.o: patternMatchData.h
26243 search.o: patternMatch.h
26244 window.o: patternMatchData.h
26245 +dictionary.o: dictionary.c dictionary.h ternary_search_tree.h ../util/utils.h
26246 +ternary_search_tree.o: ternary_search_tree.c ternary_search_tree.h
26247 +macro.o: dictionary.h file.h
26248 +menu.o: dictionary.h
26249 diff --quilt old/source/menu.c new/source/menu.c
26250 --- old/source/menu.c
26251 +++ new/source/menu.c
26252 @@ -61,6 +61,7 @@ static const char CVSID[] = "$Id: menu.c
26253 #include "../util/fileUtils.h"
26254 #include "../util/utils.h"
26255 #include "../Xlt/BubbleButton.h"
26256 +#include "dictionary.h"
26260 @@ -2877,6 +2878,11 @@ static void closeAP(Widget w, XEvent *ev
26261 preResponse = NO_SBC_DIALOG_RESPONSE;
26265 +/* Save dictionary on exit/close Christian Merkwirth 1999 */
26266 + if (dictionary_auto_save)
26269 CloseFileAndWindow(WidgetToWindow(w), preResponse);
26272 @@ -3135,6 +3141,10 @@ static void exitAP(Widget w, XEvent *eve
26274 WindowInfo *window = WidgetToWindow(w);
26276 +/* Save dictionary on exit/close Christian Merkwirth 1999 */
26277 + if (dictionary_auto_save)
26280 if (!CheckPrefsChangesSaved(window->shell))
26283 diff --quilt /dev/null new/source/ternary_search_tree.c
26285 +++ new/source/ternary_search_tree.c
26287 +/*******************************************************************************
26289 +* ternary_search_tree.c - dictionary extension for the nirvana editor nedit
26291 +* Germany Dec 1999
26293 +* Copyright (C) Christian Merkwirth
26295 +* This is free software; you can redistribute it and/or modify it under the *
26296 +* terms of the GNU General Public License as published by the Free Software *
26297 +* Foundation; either version 2 of the License, or (at your option) any later *
26300 +* This software is distributed in the hope that it will be useful, but WITHOUT *
26301 +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
26302 +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
26303 +* for more details. *
26305 +* You should have received a copy of the GNU General Public License along with *
26306 +* software; if not, write to the Free Software Foundation, Inc., 59 Temple *
26307 +* Place, Suite 330, Boston, MA 02111-1307 USA *
26309 +* Written by Christian Merkwirth
26311 +*******************************************************************************/
26313 +#include <stdio.h>
26314 +#include <stdlib.h>
26315 +#include <string.h>
26317 +#include "ternary_search_tree.h"
26319 +#define NUMBERR_TSTREES 8
26320 +#define TST_BUFFERS 256
26321 +#define TST_INITAL_BUFSIZE 512
26322 +#define STACK_PAGESIZE 256
26324 +typedef struct tnode* Tptr;
26325 +typedef struct tnode {
26331 + unsigned long count; /* if splitchar==0, count is used, otherwise eqkid */
26334 + unsigned char splitchar;
26337 +typedef struct STACK_ITEM {
26346 +/* variables and function definitions for the stack */
26347 +typedef struct STACK {
26348 + void** stackpointer;
26349 + long stack_count;
26350 + long stack_limit;
26351 + long stack_pagesize;
26354 +typedef struct TSTREE {
26355 + Tptr root; /* tree root node */
26356 + Tptr buf; /* these four variables are used */
26357 + long bufn; /* to accelerate allocation of */
26358 + long freen; /* Tnode objects */
26359 + void* freearr[TST_BUFFERS]; /* freearr and buff_size are needed for managing memory for tree */
26363 +static char* word = NULL; /* global string result storage, used in complete_string */
26364 +static long maxwordlen = 512;
26365 +static long completions_found = 0;
26366 +static long size_string_list = 0;
26367 +static char** string_list = NULL;
26368 +static unsigned long* weight_list = NULL;
26370 +/* static stack sisters = { 0, 0, 0, STACK_PAGESIZE};
26371 +static stack deep = { 0, 0, 0, STACK_PAGESIZE};
26373 +/* allocate space for several dictionaries */
26374 +static tstree tree[NUMBERR_TSTREES] = {
26375 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26376 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26377 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26378 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26379 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26380 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26381 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE},
26382 + {0, 0, 0, 0, {0}, TST_INITAL_BUFSIZE}};
26384 +static void cleanup_stack(stack* s);
26385 +static void push_stack(void* const x, stack* s);
26386 +static void* pop_stack(stack* s);
26387 +static int isempty_stack(const stack* s);
26389 +static int depth_first_traverse(const Tptr q, void (*func)(const char*, const unsigned long));
26390 +int traverse(const int tst_nr, void (*func)(const char*, const unsigned long));
26392 +/* insert string s (terminated by '\0') into dictionary number tst_nr (0...NUMBERR_TSTREES) */
26393 +/* the minimum length of s is 1 */
26394 +/* returns 0 on SUCCESS, otherwise failure */
26395 +int insert_string(const char* s, unsigned long weight, const int tst_nr)
26399 + Tptr *p = &(tree[tst_nr].root);
26401 + if ((weight < 1) || (strlen(s) < 1)) /* don't insert an empty string or just one character */
26404 + while (pp = *p) { /* as long as we encounter already exisiting nodes */
26405 + if ((d = *s - pp->splitchar) == 0) { /* characters match */
26406 + if (*(s++) == 0) {
26407 + pp->id.count += weight;
26410 + p = &(pp->id.eqkid); /* go to next level of tree */
26412 + } else if (d < 0) {
26413 + p = &(pp->lokid); /* move left in the current level */
26416 + p = &(pp->hikid); /* move right in the current level */
26419 + for (;;) { /* once we find a node that is not created, we must create every next node */
26420 + if (tree[tst_nr].bufn-- <= 0) {
26421 + tree[tst_nr].buff_size *= 2; /* size of newly allocated memory double each time */
26422 + tree[tst_nr].buf = (Tptr) malloc(tree[tst_nr].buff_size * sizeof(Tnode));
26423 + if (tree[tst_nr].buf == NULL) /* we ran out of memory */
26426 + /* due to doubling of page size, it is nearly impossible to run out of array freearr */
26427 + tree[tst_nr].freearr[tree[tst_nr].freen++] = (void *) tree[tst_nr].buf;
26428 + tree[tst_nr].bufn = tree[tst_nr].buff_size-1;
26430 + *p = tree[tst_nr].buf++;
26432 + pp->splitchar = *s;
26433 + pp->lokid = pp->id.eqkid = pp->hikid = 0;
26434 + if (*(s++) == 0) {
26435 + pp->id.count = weight; /* set count to weight */
26438 + p = &(pp->id.eqkid);
26442 +void sort_matches(const char* s, const unsigned long weight)
26445 + static unsigned long minweight = 0;
26446 + long pos = 0; /* position where to insert */
26448 + if (strlen(s) <= 0)
26451 + if (completions_found == 0) /* when invoked for the first time, clear minweight */
26455 + printf("Completion : %s %d\n", s, weight);
26458 + if (weight <= minweight)
26461 + while(weight <= weight_list[pos]) { /* find position to insert */
26462 + if (++pos >= size_string_list) /* list is sorted from highest to lowest weight */
26466 + if (pos >= completions_found) { /* new entry in free slot */
26468 + printf("Inserting element at %d\n", pos);
26470 + string_list[pos] = (char*) malloc(strlen(s)+1);
26471 + weight_list[pos] = weight;
26472 + strcpy(string_list[pos], s);
26473 + completions_found++;
26475 + else /* insert at position pos */
26477 + if (completions_found >= size_string_list) { /* list is full, so we have to remove the last item */
26478 + free(string_list[size_string_list-1]);
26479 + } else { /* completions_found < size_string_list */
26480 + completions_found++;
26483 + printf("Moving elements %d to %d (incl) \n", completions_found-2, pos);
26485 + for (i = completions_found-2; i >= pos; i--) { /* move elements one slot down */
26486 + string_list[i+1] = string_list[i];
26487 + weight_list[i+1] = weight_list[i];
26490 + printf("and inserting element at %d\n", pos);
26492 + weight_list[pos] = weight;
26493 + string_list[pos] = (char*) malloc(strlen(s)+1);
26494 + strcpy(string_list[pos], s);
26497 + minweight = weight_list[size_string_list-1];
26500 + printf("Completions found so far : %d\n", completions_found);
26501 + for (i=0; i < completions_found; i++)
26502 + printf("%d %d %s\n", i, weight_list[i], string_list[i]);
26508 +/* Search tree to see if we can complete the string s
26510 + Only the missing characters, terminated by a null, are returned in string
26511 + S[0], which is may not be freed by the calling function
26512 + S must point to a valid char*, e.g. char* s2; S = &s2;
26514 + If we cannot complete s or an error occured, zero or a negative value is returned.
26515 + Otherwise, the number of possible completions found is returned
26516 + The parameters are as follows :
26518 + s - beginning of word to complete (terminated by '\0')
26520 + S - array of char pointers, holding (output) string(s) with the characters needed to complete s to the full word.
26521 + While the array S itself must be allocated by the calling function, the strings to which S[0], S[1] ... point
26522 + are allocated by the called function, so no deallocation is needed
26524 + maxmatches - maximal number of returned strings (i.e. size of array S)
26527 +int complete_string(const char* const s, char** S, const int maxmatches, const int tst_nr)
26529 + Tptr p = tree[tst_nr].root;
26530 + long position = 0;
26531 + long s_len = strlen(s);
26533 + if (maxmatches < 1) {
26537 + if (word == NULL) {
26538 + word = (char*) malloc(maxwordlen + 4);
26539 + if (word == NULL) {
26540 + return -3; /* out of memory */
26545 + if (s[position] < p->splitchar)
26547 + else if (s[position] > p->splitchar)
26549 + else { /* s[position] == splitchar */
26550 + if (!p->splitchar) { /* if s is longer than the matching path in the tree */
26554 + if (++position == s_len) {
26555 + goto found; /* if we found s completely in the tree, now try to find a completion */
26557 + p = p->id.eqkid; /* otherwise, go one level deeper into the tree */
26569 + void (*func)() = &sort_matches;
26571 + if (p->id.eqkid == 0) return -1; /* tree is empty */
26573 + size_string_list = maxmatches;
26574 + completions_found = 0;
26576 + string_list = (char**) malloc(size_string_list * sizeof(char*));
26577 + weight_list = (unsigned long*) malloc(size_string_list * sizeof(unsigned long));
26579 + for (i=0; i < size_string_list; i++) {
26580 + string_list[i] = 0;
26581 + weight_list[i] = 0;
26584 + depth_first_traverse(p->id.eqkid, func);
26586 + for (i=0; i < completions_found; i++) {
26587 + pos += strlen(string_list[i]) + 1;
26590 + if (pos >= maxwordlen) { /* resize output string */
26591 + maxwordlen += pos;
26592 + word = realloc(word, (maxwordlen + 4));
26593 + if (word == NULL) {
26594 + for (i=0; i < completions_found; i++)
26595 + free(string_list[i]);
26597 + free(string_list);
26598 + free(weight_list);
26599 + return -3; /* out of memory */
26605 + for (i=0; i < completions_found; i++) {
26606 + const long n = completions_found - i - 1;
26607 + const long s_len = strlen(string_list[n]) + 1;
26608 + S[i] = word + pos;
26609 + strcpy(S[i], string_list[n]);
26610 + free(string_list[n]);
26614 + free(string_list);
26615 + free(weight_list);
26616 + size_string_list = 0;
26618 + return completions_found;
26622 +/* Search dictionary if string s is element
26624 + Input arguments :
26625 + s - string to find (terminated by '\0')
26626 + Output arguments :
26627 + weight is element s, otherwise zero
26629 +unsigned long string_is_element(const char* const s, const int tst_nr)
26631 + Tptr p = tree[tst_nr].root;
26632 + int position = 0;
26634 + if (strlen(s) > 0) {
26636 + if (s[position] < p->splitchar)
26638 + else if (s[position] > p->splitchar)
26640 + else { /* s[position] == splitchar */
26641 + if (!p->splitchar) { /* s[position] == p->splitchar == 0, so we s is an element */
26642 + return p->id.count;
26655 +/* recursivly traverse tree (for saving dictionary to file or similar purposes) */
26656 +int traverse(const int tst_nr, void (*func)(const char*, const unsigned long))
26658 + const Tptr p = tree[tst_nr].root;
26660 + return -1; /* tree is empty */
26662 + return depth_first_traverse(p, func);
26665 +static int depth_first_traverse(const Tptr q, void (*func)(const char*, const unsigned long))
26667 + char* line = NULL;
26668 + long maxlinelen = 512;
26670 + stack tpr_stack = { 0, 0, 0, STACK_PAGESIZE};
26671 + stack pos_stack = { 0, 0, 0, STACK_PAGESIZE};
26673 + if (line == NULL) {
26674 + line = malloc((maxlinelen + 4));
26675 + if (line == NULL) return -3; /* out of memory */
26678 + push_stack((void*) q, &tpr_stack);
26679 + push_stack((void*) ((unsigned long) 0), &pos_stack);
26681 + while(!isempty_stack(&tpr_stack)) {
26682 + unsigned long pos = (unsigned long) pop_stack(&pos_stack);
26683 + const Tptr p = (Tptr) pop_stack(&tpr_stack);
26688 + if (pos >= maxlinelen) {
26689 + maxlinelen += pos;
26690 + line = realloc(line, (maxlinelen + 4));
26691 + if (line == NULL) {
26692 + cleanup_stack(&pos_stack);
26693 + cleanup_stack(&tpr_stack);
26694 + return -3; /* out of memory */
26698 + line[pos] = p->splitchar;
26700 + push_stack((void*) p->hikid, &tpr_stack);
26701 + push_stack((void*) pos, &pos_stack);
26702 + push_stack((void*) p->lokid, &tpr_stack);
26703 + push_stack((void*) pos, &pos_stack);
26705 + if (p->splitchar) {
26706 + push_stack((void*) p->id.eqkid, &tpr_stack);
26707 + push_stack((void*) (pos+1), &pos_stack);
26710 + (*func)(line, p->id.count);
26715 + cleanup_stack(&pos_stack);
26716 + cleanup_stack(&tpr_stack);
26723 +/* general cleaning up */
26727 + maxwordlen = 512;
26731 + * cleanup_stack(&sisters);
26732 + * cleanup_stack(&deep)
26737 +void cleanup_tree(const int tst_nr)
26741 + for (i = 0; i < tree[tst_nr].freen; i++)
26742 + free(tree[tst_nr].freearr[i]);
26744 + tree[tst_nr].root = 0;
26745 + tree[tst_nr].buf = 0;
26746 + tree[tst_nr].bufn = 0;
26747 + tree[tst_nr].freen = 0;
26749 + tree[tst_nr].buff_size = TST_INITAL_BUFSIZE;
26752 +/* end of ternary search tree section */
26755 +/* beginning of stack section */
26757 +static void cleanup_stack(stack* s)
26759 + free(s->stackpointer);
26761 + s->stackpointer = 0;
26762 + s->stack_limit = 0;
26763 + s->stack_count = 0;
26764 + s->stack_pagesize = STACK_PAGESIZE;
26767 +static void push_stack(void* const x, stack* s) {
26768 + if (s->stack_count >= s->stack_limit) {
26769 + s->stack_limit += s->stack_pagesize;
26770 + s->stack_pagesize *= 2; /* double size of newly allocated array */
26771 + s->stackpointer = (void*) realloc(s->stackpointer, s->stack_limit*sizeof(void*));
26774 + s->stackpointer[s->stack_count++] = x;
26777 +static void* pop_stack(stack* s)
26779 + return s->stackpointer[--s->stack_count];
26782 +static int isempty_stack(const stack* s)
26784 + return (s->stack_count==0);
26787 +/* end of stack* section */
26790 +#undef TST_BUFFERS
26791 +#undef TST_INITAL_BUFSIZE
26792 +#undef STACK_PAGESIZE
26793 +#undef NUMBERR_TSTREES
26794 diff --quilt /dev/null new/source/ternary_search_tree.h
26796 +++ new/source/ternary_search_tree.h
26798 +#ifndef TERNARY_SEARCH_TREE_H
26799 +#define TERNARY_SEARCH_TREE_H
26801 +extern int insert_string(const char* s, unsigned long weight, const int tst_nr);
26802 +extern int complete_string(const char* const s, char** S, const int maxmatches, const int tst_nr);
26803 +extern unsigned long string_is_element(const char* const s, const int tst_nr);
26804 +extern int traverse(const int tst_nr, void (*func)(const char*, const unsigned long));
26806 +extern void cleanup();
26807 +extern void cleanup_tree(const int tst_nr);
26809 diff --quilt old/util/utils.c new/util/utils.c
26810 --- old/util/utils.c
26811 +++ new/util/utils.c
26812 @@ -53,11 +53,11 @@ static const char CVSID[] = "$Id: utils.
26814 #define DEFAULT_NEDIT_HOME ".nedit"
26816 - static char* hiddenFileNames[N_FILE_TYPES] = {".nedit", ".neditmacro", ".neditdb;1"};
26817 - static char* plainFileNames[N_FILE_TYPES] = {"nedit.rc", "autoload.nm", "nedit.history;1"};
26818 + static char* hiddenFileNames[N_FILE_TYPES] = {".nedit", ".neditmacro", ".neditdb;1", ".neditdict"};
26819 + static char* plainFileNames[N_FILE_TYPES] = {"nedit.rc", "autoload.nm", "nedit.history;1", "nedit.dict"};
26821 - static char* hiddenFileNames[N_FILE_TYPES] = {".nedit", ".neditmacro", ".neditdb"};
26822 - static char* plainFileNames[N_FILE_TYPES] = {"nedit.rc", "autoload.nm", "nedit.history"};
26823 + static char* hiddenFileNames[N_FILE_TYPES] = {".nedit", ".neditmacro", ".neditdb", ".neditdict"};
26824 + static char* plainFileNames[N_FILE_TYPES] = {"nedit.rc", "autoload.nm", "nedit.history", "nedit.dict"};
26827 static void buildFilePath(char* fullPath, const char* dir, const char* file);
26828 diff --quilt old/util/utils.h new/util/utils.h
26829 --- old/util/utils.h
26830 +++ new/util/utils.h
26831 @@ -74,7 +74,7 @@ void Push(Stack* stack, const void* valu
26832 void* Pop(Stack* stack);
26834 /* N_FILE_TYPES must be the last entry!! This saves us from counting. */
26835 -enum {NEDIT_RC, AUTOLOAD_NM, NEDIT_HISTORY, N_FILE_TYPES};
26836 +enum {NEDIT_RC, AUTOLOAD_NM, NEDIT_HISTORY, NEDIT_DICT, N_FILE_TYPES};
26838 /* If anyone knows where to get this from system include files (in a machine
26839 independent way), please change this (L_cuserid is apparently not ANSI) */
26840 diff --quilt old/source/highlightData.c new/source/highlightData.c
26841 --- old/source/highlightData.c
26842 +++ new/source/highlightData.c
26843 @@ -551,7 +551,7 @@ static char *DefaultPatternSets[] = {
26844 Built-in Misc Vars:\"(?<!\\Y)\\$(?:active_pane|calltip_ID|column|cursor|display_width|empty_array|file_name|file_path|language_mode|line|locked|max_font_width|min_font_width|modified|n_display_lines|n_panes|rangeset_list|read_only|selection_(?:start|end|left|right)|server_name|text_length|top_line|transient|VERSION|NEDIT_HOME)>\":::Identifier::\n\
26845 Built-in Pref Vars:\"(?<!\\Y)\\$(?:auto_indent|em_tab_dist|file_format|font_name|font_name_bold|font_name_bold_italic|font_name_italic|highlight_syntax|incremental_backup|incremental_search_line|make_backup_copy|match_syntax_based|overtype_mode|show_line_numbers|show_matching|statistics_line|tab_dist|use_tabs|wrap_margin|wrap_text)>\":::Identifier2::\n\
26846 Built-in Special Vars:\"(?<!\\Y)\\$(?:args|[1-9]|list_dialog_button|n_args|read_status|search_end|shell_cmd_status|string_dialog_button|sub_sep)>\":::String1::\n\
26847 - Built-in Subrs:\"<(?:args|append_file|beep|call|calltip|clipboard_to_string|dialog|filename_dialog|focus_window|get_character|get_matching|get_pattern_(by_name|at_pos)|get_range|get_selection|get_style_(by_name|at_pos)|getenv|highlight_calltip_line|kill_calltip|length|list_dialog|max|min|n_args|rangeset_(?:add|create|destroy|get_by_name|includes|info|invert|range|set_color|set_mode|set_name|subtract)|read_file|replace_in_string|replace_range|replace_selection|replace_substring|search|search_string|select|select_rectangle|set_cursor_pos|set_transient|shell_command|split|string_compare|string_dialog|string_to_clipboard|substring|t_print|tolower|toupper|valid_number|write_file)(?=\\s*\\()\":::Subroutine::\n\
26848 + Built-in Subrs:\"<(?:args|append_file|beep|call|calltip|clipboard_to_string|dialog|filename_dialog|dict_(?:insert|complete|save|append|is_element)|focus_window|get_character|get_matching|get_pattern_(by_name|at_pos)|get_range|get_selection|get_style_(by_name|at_pos)|getenv|highlight_calltip_line|kill_calltip|length|list_dialog|max|min|n_args|rangeset_(?:add|create|destroy|get_by_name|includes|info|invert|range|set_color|set_mode|set_name|subtract)|read_file|replace_in_string|replace_range|replace_selection|replace_substring|search|search_string|select|select_rectangle|set_cursor_pos|set_transient|shell_command|split|string_compare|string_dialog|string_to_clipboard|substring|t_print|tolower|toupper|valid_number|write_file)(?=\\s*\\()\":::Subroutine::\n\
26849 Menu Actions:\"<(?:new(?:_tab|_opposite)?|open|open-dialog|open_dialog|open-selected|open_selected|close|save|save-as|save_as|save-as-dialog|save_as_dialog|revert-to-saved|revert_to_saved|revert_to_saved_dialog|include-file|include_file|include-file-dialog|include_file_dialog|load-macro-file|load_macro_file|load-macro-file-dialog|load_macro_file_dialog|load-tags-file|load_tags_file|load-tags-file-dialog|load_tags_file_dialog|unload_tags_file|load_tips_file|load_tips_file_dialog|unload_tips_file|print|print-selection|print_selection|exit|undo|redo|delete|select-all|select_all|shift-left|shift_left|shift-left-by-tab|shift_left_by_tab|shift-right|shift_right|shift-right-by-tab|shift_right_by_tab|find|find-dialog|find_dialog|find-again|find_again|find-selection|find_selection|find_incremental|start_incremental_find|replace|replace-dialog|replace_dialog|replace-all|replace_all|replace-in-selection|replace_in_selection|replace-again|replace_again|replace_find|replace_find_same|replace_find_again|goto-line-number|goto_line_number|goto-line-number-dialog|goto_line_number_dialog|goto-selected|goto_selected|mark|mark-dialog|mark_dialog|goto-mark|goto_mark|goto-mark-dialog|goto_mark_dialog|match|select_to_matching|goto_matching|find-definition|find_definition|show_tip|split-pane|split_pane|close-pane|close_pane|detach_document(?:_dialog)?|move_document_dialog|(?:next|previous|last)_document|uppercase|lowercase|fill-paragraph|fill_paragraph|control-code-dialog|control_code_dialog|filter-selection-dialog|filter_selection_dialog|filter-selection|filter_selection|execute-command|execute_command|execute-command-dialog|execute_command_dialog|execute-command-line|execute_command_line|shell-menu-command|shell_menu_command|macro-menu-command|macro_menu_command|bg_menu_command|post_window_bg_menu|post_tab_context_menu|beginning-of-selection|beginning_of_selection|end-of-selection|end_of_selection|repeat_macro|repeat_dialog|raise_window|focus_pane|set_statistics_line|set_incremental_search_line|set_show_line_numbers|set_auto_indent|set_wrap_text|set_wrap_margin|set_highlight_syntax|set_make_backup_copy|set_incremental_backup|set_show_matching|set_match_syntax_based|set_overtype_mode|set_locked|set_tab_dist|set_em_tab_dist|set_use_tabs|set_fonts|set_language_mode)(?=\\s*\\()\":::Subroutine::\n\
26850 Text Actions:\"<(?:self-insert|self_insert|grab-focus|grab_focus|extend-adjust|extend_adjust|extend-start|extend_start|extend-end|extend_end|secondary-adjust|secondary_adjust|secondary-or-drag-adjust|secondary_or_drag_adjust|secondary-start|secondary_start|secondary-or-drag-start|secondary_or_drag_start|process-bdrag|process_bdrag|move-destination|move_destination|move-to|move_to|move-to-or-end-drag|move_to_or_end_drag|end_drag|copy-to|copy_to|copy-to-or-end-drag|copy_to_or_end_drag|exchange|process-cancel|process_cancel|paste-clipboard|paste_clipboard|copy-clipboard|copy_clipboard|cut-clipboard|cut_clipboard|copy-primary|copy_primary|cut-primary|cut_primary|newline|newline-and-indent|newline_and_indent|newline-no-indent|newline_no_indent|delete-selection|delete_selection|delete-previous-character|delete_previous_character|delete-next-character|delete_next_character|delete-previous-word|delete_previous_word|delete-next-word|delete_next_word|delete-to-start-of-line|delete_to_start_of_line|delete-to-end-of-line|delete_to_end_of_line|forward-character|forward_character|backward-character|backward_character|key-select|key_select|process-up|process_up|process-down|process_down|process-shift-up|process_shift_up|process-shift-down|process_shift_down|process-home|process_home|forward-word|forward_word|backward-word|backward_word|forward-paragraph|forward_paragraph|backward-paragraph|backward_paragraph|beginning-of-line|beginning_of_line|end-of-line|end_of_line|beginning-of-file|beginning_of_file|end-of-file|end_of_file|next-page|next_page|previous-page|previous_page|page-left|page_left|page-right|page_right|toggle-overstrike|toggle_overstrike|scroll-up|scroll_up|scroll-down|scroll_down|scroll_left|scroll_right|scroll-to-line|scroll_to_line|select-all|select_all|deselect-all|deselect_all|focusIn|focusOut|process-return|process_return|process-tab|process_tab|insert-string|insert_string|mouse_pan)(?=\\s*\\()\":::Subroutine::\n\
26851 Macro Hooks:\"<(?:(?:pre|post)_(?:open|save)|cursor_moved|modified|(?:losing_)?focus|language_mode)_hook(?=\\s*\\()\":::Subroutine1::\n\
26852 diff --quilt old/source/built-ins.h new/source/built-ins.h
26853 --- old/source/built-ins.h
26854 +++ new/source/built-ins.h
26855 @@ -63,6 +63,11 @@ MS(args, args)
26857 MS(highlight_calltip_line, highlightCTLine)
26858 MS(get_matching, getMatching)
26859 +MS(dict_insert, dictinsert)
26860 +MS(dict_complete, dictcomplete)
26861 +MS(dict_save, dictsave)
26862 +MS(dict_append, dictappend)
26863 +MS(dict_is_element, dictiselement)