[gelöst]benötige Hilfe bei Schriftartendefinition



  • Hallo!

    Ich habe hier einen code, bei dem folgende Definition detätigt wird:

    char *font = "-urw-serpentine d-bold-r-normal-*-*-720-*-*-p-*-iso8859-1";
    

    Da ich aber die hier angegebene Schriftart nicht habe, muß ich sie durch eine andere ersetzen. Da ich noch nie mit fonts gearbeitet habe, stehe ich vor dieser Definition jedoch wie der sprichwörtliche Esel vor der Leiter. Kann mir jemand sagen, wie dieser String sich zusammensetzt? Ist das überhaupt eine standardmäßige C-Definition?

    Danke für eure selbstlose Hilfe!

    Gruß, Tom



  • das hat rein garnix mit c zu tun.

    hole weiter aus.



  • Das ganze stammt aus einem daemon, der als Frontend für libxosd dient. XOSD dient dazu, auf einem X-Window-System ein On-Screen-Display wie beim Videorecorder zu emulieren. Dabei kann man verschiedene Optionen festlegen, u.a. eben auch die Schriftart mit dem Aufruf:

    xosd_set_font(osd, font)
    

    Dabei ist osd ein Zeiger auf das OSD-Objekt und font ein String, der der Funktion sagt, welche Schrift sie verwenden soll. Das mit Problem dabei: Die Funktion ist (noch) nicht dokumentiert. Hier ist der Quellcode der Funktion, ich hoffe Du wirst daraus schlau (meine C-Kenntnisse reichen dazu leider bei weitem nicht aus):

    /* xosd_set_font -- Change the text-display font {{{
     * Might return error if fontset can't be created. **/
    int
    xosd_set_font(xosd * osd, const char *font)
    {
      XFontSet fontset2;
      char **missing;
      int nmissing;
      char *defstr;
      int ret = 0;
    
      FUNCTION_START(Dfunction);
      if (osd == NULL)
        return -1;
      if (font == NULL)
        return -1;
    
      /*
       * Try to create the new font. If it doesn't succeed, keep old font. 
       */
      _xosd_lock(osd);
      fontset2 = XCreateFontSet(osd->display, font, &missing, &nmissing, &defstr);
      XFreeStringList(missing);
      if (fontset2 == NULL) {
        xosd_error = "Requested font not found";
        ret = -1;
      } else {
        if (osd->fontset != NULL)
          XFreeFontSet(osd->display, osd->fontset);
        osd->fontset = fontset2;
        osd->update |= UPD_font;
      }
      _xosd_unlock(osd);
    
      return ret;
    }
    
    /* }}} */
    

    Ich poste den kompletten Quellcode, da zu lang für inline, mal in diesem pastebin hier: http://rafb.net/p/WC9WDD58.html Alternativ gibt's ihn auf: http://www.ignavus.net/software.html



  • Kommando zurück, ich hab die Lösung gefunden. Für die die's interessiert, es wardie ausgabe von xfontsel damit gemeint.

    Gruß und danke für eure Mühe,

    Tom


Anmelden zum Antworten