• Also erstmal, die Sache funktioniert nach dem "Template-Konzept". Es gab einen Template-String der da lautet "Copy of \\1". In dem wird \\1 durch den Dateinamen ausgetauscht. Dieses Template String habe ich geändert zu "\\ (Copy). Den ASM - Code selbst habe ich nicht angefasst.

    Der Grenzfall wird vom Code durchaus berücksichtigt. Allerdings nur in der Form, dass der String nicht länger als der Buffer sein darf.

    Das Ding ist, ich bin nicht sicher, ob es gut ist, das "(Copy)" um jeden Preis in den Dateinamen zu bringen, da die GEOS-Dateinamen ja (aus heutiger Sicht) ziemlich kurz sind und es sich nur um einen NamensVORSCHLAG handelt - man sieht ja an Sebi, dass er das sowieso gleich wieder löschen will. Man stelle sich vor, jemand hat einen sehr wichtigen, genau 32 Zeichen langen Namen und von dem löscht der Algorithmus dann fröhlich das Ende, nur um "(Copy)" anzuhängen. Dann flucht der Nutzer, muss seinen Namen wiederherstellen und wechselt dann womöglich zu einem Konkurrenzsystem wie Windows oder Mac ;)

    Also, was meint ihr? "(Copy)" auf jeden oder was?

    Spannend, mal etwas vom dahinterliegenden Code zu erfahren :love:.

    Sollte der Template-String nicht "\\1 (Copy)" lauten?

    Hast du mal ausprobiert, ob bei einem langem Dateinamen wirklich das Ende gelöscht wird, um das Copy anzuhängen? Meine Vermutung wäre eher, daß das Copy dann (teilweise) abgeschnitten wird und der ursprüngliche Name bleibt.
    Aktuell ist es so, daß "Kopie von " vorangestellt wird und wenn dann der resultierende neue Name zu lang ist, wird der hinten gekürzt. Eine Längenkontrolle findet also offenbar statt (im asm-Code?).

    Aber zur Frage: Falls der Platz für ein anzuhängendes (Copy) oder (Kopie) nicht ausreicht, dann würde ich nichts anhängen.

  • Dann muß Rainer den asm-Code nach seinen Wünschen anpassen 8o.

    Alles klar, dann hatte ich das falsch verstanden.

    Wie wollen wir’s dann machen?
    Mir wäre der Dateiname auch wichtiger als das Copy.
    Das Einzige: Sieht vielleicht doof aus, falls der Anhang abgeschnitten wird: „Ganz langer Name (Co“.
    Naja, manchmal kann man nicht alles haben ... Oder Rainer/Falk tippt mal kurz im Assembler rum :)

  • Ich bleib jetzt mal bei meiner Meinung. :P

    Man stelle sich vor, jemand hat einen sehr wichtigen, genau 32 Zeichen langen Namen und von dem löscht der Algorithmus dann fröhlich das Ende, nur um "(Copy)"

    Das ist erstens nur ein sehr seltener Fall und der alte Algorithmus hat ja auch genau das getan, nur um zwangsweise und fröhlich das "Copy of " davor zu setzten. Dass man dazu den Assemblercode anfassen muss ist allerdings ein echtes Hindernis.

    Rainer

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • Oder Rainer/Falk tippt mal kurz im Assembler rum

    Ich bin für Falk :) - Nee im Ernst, machbar wäre das schon, aber eben auch aufwändig und es müsste gründlich gestestet werden. Gerade beim Thema Überschreiten des vorhandenen Pufferspeichers muss man aufpassen. Und meine Assemblerkenntnisse sind von 1990 und nur Z80.

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.