OSSP CVS Repository

ossp - Check-in [1302]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 1302
Date: 2001-Nov-13 13:18:51 (local)
2001-Nov-13 12:18:51 (UTC)
User:simons
Branch:
Comment: Removed the items that are fully implemented from the TODO file.
Tickets:
Inspections:
Files:
ossp-pkg/var/TODO      1.1 -> 1.2     4 inserted, 121 deleted

ossp-pkg/var/TODO 1.1 -> 1.2

--- TODO 2001/11/09 17:01:37     1.1
+++ TODO 2001/11/13 12:18:51     1.2
@@ -1,71 +1,7 @@
-                              libvar.a
+                               OSSP var
 
- - Prefix ist "var_", beziehungsweise "VAR_".
-
- - Eine Variable kann im Text in der Form $name oder ${name} angegeben
-   werden, wobei die Wahl der Klammern '{' '}' und des '$'
-   parametriesiert werden können.
-
- - Gültige Zeichen für einen Variablennamen sind konfigurierbar.
-   Garbage in -- garbage out.
-
- - Ein echtes '$'-Zeichen im Text kann durch Voranstellung eines
-   wählbaren Escapezeichen dargestellt werden. Default ist der
-   Backslash ('\').
-
- - Der Aufrufer der Funktion soll steuern können, wie sich die Library
-   verhält, wenn eine Variable nicht existiert. Denkbar sind:
-
-    - Abbruch mit Fehler,
-    - die Variable wird zu "", oder
-    - der Ausdruck wird unverändert in den Ausgabetext übernommen,
-      sodaß eventuell ein zweiter Pass gemacht werden kann.
-
- - ${parameter:-word} wird normal expandiert. Wenn "parameter" leer
-   ist, wird stattdessen "word" eingesetzt.
-
- - ${parameter:+word} substituiert "word" wenn "parameter" nicht leer
-   ist, sonst wird "" substituiert.
-
- - ${parameter:o<start>-}, ${parameter:o<start>-<end>}
-
- - ${parameter:o<start>,}, ${parameter:o<start>,<length>}
-
- - ${parameter:#} expandiert zur Länge des Inhaltes von "parameter".
-
- - ${parameter:s/pattern/string/[gti]} expandiert "parameter" und
-   führt dann eine Ersetzung mittels des regulären Ausdrucks "pattern"
-   durch. Wird das 'g'-Flag angegeben, wird nicht nur eine Instanz von
-   "pattern" durch "string" ersetzt, sondern alle. Das 't'-Flag
-   signalisiert, daß eine reine Text-Ersetzung ohne Unterstützung von
-   regulären Ausdrücken gewünscht ist. Das 'i'-Flag besagt, daß die
-   Suche nach "pattern" case-insensitiv durchgeführt wird.
-
- - ${parameter:y/ochars/nchars/} expandiert den Inhalt von "parameter"
-   und transformiert dabei nach dem Prinzip von tr(1) die "ochars" im
-   Text zu "nchars".
-
- - ${parameter:l} wandelt den Inhalt von "parameter" in
-   Kleinbuchstaben, bevor es die Variable expandiert. Dies geschieht
-   über toupper(3).
-
- - ${parameter:u} wandelt den Inhalt von "parameter" in
-   Großbuchstaben, bevor es die Variable expandiert. Dies geschieht
-   über tolower(3).
-
- - ${parameter:*word} expandiert zum leeren Wort, wenn "parameter"
-   nicht leer ist, sonst zu "word".
-
- - Padding: ${parameter:p/<width>/<string>/<align>} expandiert
-   "parameter" in einen String der Mindestbreite <width>, wobei abhaengig
-   von <align> ("r" = right, "l" = left, "c" = center) noch fehlende
-   Zeichen mit <string> aufgefuellt werden. Diest ist gedacht, um in
-   Templates saubere Tabellen erzeugen zu koennen.
-   Beispiele (foo="bar"):
-       "${foo:p/6/./r}" -> "bar..."
-       "${foo:p/6/./l}" -> "...bar"
-       "${foo:p/6/./c}" -> ".bar.." (oder "..bar.", egal)
-       "${foo:p/20/-=/c}" -> "-=-=-=-=-bar-=-=-=-="
+ - Beim Suchen/Ersetzen mit Regular-Expression-Unterstützung fehlt
+   noch die Erkennung von \1, \2 etc.
 
  - Jedes Vorkommen eines der folgenden Konstrukte im Text wird durch
    das zugehörige Sonderzeichen ersetzt.
@@ -119,57 +55,4 @@
  - Doku sollte ein Beispiel für Quoting von Shell- und
    Regexp-Ausdrücken enthalten.
 
- - Wir unterstützen PCRE-, POSIX-Regex- oder keine regulären
-   Ausdrücke. Dies kann über autoconf zur Compilezeit angegeben
-   werden.
-
- - Das Escaping-Problem:
-
-Unsere Library macht zwei Dinge:
-
- (1) Sie expandiert Variablen-Ausdrücke mit Unterstützung von
-     Operationen wie Suchen/Ersetzen, und
-
- (2) sie expandiert sogenannte "quoted pairs", wie zum Beispiel \n.
-
-Das Problem ist nun, daß sie dies in zwei Pässen tun will -- und muß.
-Die Frage ist jedoch, in welcher Reihenfolge tut sie es und welche
-Ergebnisse werden in den Ausgabetext ausgegeben? Betrachtet man
-folgendes Beispiel, wird das Problem klarer:
-
-    Variablen: TEST = foo
-    Eingabe..: Der Betrag auf Konto $TEST ist \$50.
-
-Soll die korrekte Ausgabe an dieser Stelle nun
-
-    Der Betrag auf Konto foo ist \$50.
-
-oder
-
-    Der Betrag auf Konto foo ist $50.
-
-sein? Die erste Form ist die, die man intuitiv erwartet, die zweite
-Form ist jedoch die, die man braucht, wenn man den Text durch mehrere
-Pässe jagen will -- was wir ausdrücklich vorgesehen haben.
-
-Schlimmer noch: Wie soll die Library die Eingabe
-
-    Der Betrag auf Konto ${TEST:s/(.*)/\1bar/} ist \$50.
-
-interpretieren? Würde unser Parser das Token "\1" interpretieren,
-würde nur eine "1" zurückbleiben, der Benutzer müßte also "\\1"
-schreiben, um das Ergebnis zu erhalten, was er erwartet.
-Interpretierte unser Parser die "quoted pairs" nicht, könnte man den
-Ausdruck
-
-    ${TEST:s/\n/ /g}
-
-nicht verwenden, weil die Regular-Expression-Funktionen ein '\n' nicht
-kennen.
-
-Nehmen wir also an, wir interpretieren "quoted pairs" und leben damit,
-daß der Benutzer dann doppelt escapen muß ... Wie verhält sich das
-dann mit mehreren Pässen? Läuft die Library zweimal über die Eingabe,
-bräuchte man bereits
-
-    Der Betrag auf Konto ${TEST:s/(.*)/\\1bar/} ist \$50.
+ - Unterstützung von PCRE.

CVSTrac 2.0.1