On Sun, Oct 29, 2006 at 03:52:10PM +0100, Thomas Lange wrote:

>> +        while ( length $n ) { 
>> +            $host = sprintf( "%s%d" ,$host?"$host.":$host,
>> +                        (hex substr $n,0,1,"" ) * 16 + (hex substr 
>> $n,0,1,"")); 
>> +        }

> Das verstehe ich nicht. Warum eine while schleife ueber $n? Oder soll
> das nur wie ein if $n > 0 funktionieren? IMO macht die schleife aber
> bei jedem Durschlauf das gleich wenn $n > 1 ist.

Solange in $n noch etwas drin ist, verarbeite bis zu 2 Zeichen vom
Anfang von $n. Das ist doch der klassische Trivialfall einer
while-Schleife, und es funktioniert sogar. Ich verstehe daher nicht, was
Dir daran nicht gefällt.

> 
> 
>     > -      $srcfile = "$pxedir/$srchost";
>     > +      $srcfile = "$pxedir/$srchost.tmpl";
> Verstehe ich auch nicht.

Dann schaue es Dir doch mal im größeren Kontext an:
     } elsif (-e "$pxedir/$srchost.tmpl" ) {
-      $srcfile = "$pxedir/$srchost";
+      $srcfile = "$pxedir/$srchost.tmpl";
     } else {

Es wird erst auf die Existenz des template geprüft und dann eine andere
(evtl. nicht existierende) Datei eingelesen. Ich glaube hier müßten wir
mal diskutieren was der gesamte Block an sich machen soll, aber meines
Erachtens tut er nur mit dem Patch genau das was man/ich (laut manpage)
von ihm erwarten sollte.

> Die man page ist schon gepatched. Leider ist dein patch sehr gross das
> macht es schwer alles einzubauen. Und mein urspruenglicher bug ist
> damit noch nicht gefixt, aber ich habe dafuer jetzt einen patch.

Soso, na das wundert mich jetzt aber, denn bei mir hat er den Bug
behoben. Nur mal so wild aus dem Patch zitiert:
+    if (/\.disable$/) {
+        if (-f (split /\./)[0]) {
+            warn "Skipping $_ as disabled host because also enabled.\n" if 
$verbose; 
+        } else {

und dann noch:
+  if (-f "$pxedir/$hex.disable") {
+      unlink "$pxedir/$hex.disable";
+      print "removed old $pxedir/$hex.disable\n";
+  }

Es mag sein, daß Dir das nicht gefällt, aber behoben ist es definitiv,
wie Du auch aus meinen Beispielen erkennen solltest.

Soll ich den Patch nochmal zerlegen? Warum sich das schwer einbauen läßt
verstehe ich leider nicht, da ich den direkt gegen den aktuellen
SVN-Head gebaut hatte, so daß ein einfaches "patch" ausreichen sollte.

Grüße,
    thpo

-- 
| Thomas Pöhnitzsch, Dipl.-Inf.           |  foobar GmbH              |
| System Management/Software Development  |  Bernsdorfer Str. 210-212 |
| Tel.: +49 371 5347 - 160    Fax: - 158  |  09126 Chemnitz/Germany   |
| E-Mail:  [EMAIL PROTECTED]             |  http://www.foobar-cpa.de |

Reply via email to