LINUX.ORG.RU

Команды которая может выдать название шрифта для любого приложнения в Х несуществует. В каждом случае настраивается либо само приложение, либо графическая среда, либо оконный менеджер, либо сама Х система.

Vlad_Ts ★★★★★
()

Взято с opennet.ru ________________ #include <dlfcn.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <unistd.h> #include <string.h> /* Devoted to Cyril Slobin for his excellent works in area of Russification

Copyright (C) 2002 by V. Wagner */ void report(const char *function, const char *name); XFontStruct *(*RealLoadQueryFont) (Display *display, const char* name); Font (*RealLoadFont) (Display *display, const char *name); Display* XOpenDisplay( const char* display_name) { void * handle=dlopen("libX11.so.6", RTLD_NOW | RTLD_GLOBAL); void *(*RealOpenDisplay)(const char*); if (!handle) exit(127); RealOpenDisplay=dlsym(handle, "XOpenDisplay"); RealLoadQueryFont=dlsym(handle, "XLoadQueryFont"); RealLoadFont=dlsym(handle,"XLoadFont"); return (*RealOpenDisplay)(display_name); } XFontStruct *XLoadQueryFont (Display *display, _Xconst char* name) { report("XLoadQueryFont",name); return (*RealLoadQueryFont) (display, name); } Font XLoadFont (Display *display, _Xconst char *name) { report("XLoadFont",name); return (*RealLoadFont) (display, name); }

void report (const char *function,const char *name) { char buffer[1024]; strcpy(buffer,function); strcat(buffer,": "); strcat(buffer,name); strcat(buffer,"\n"); write(2,buffer,strlen(buffer)); } _________ Собрать это, например как xfontdump.so Тогда запуск приложения, чей фонт тебя интересует, так: LD_PRELOAD=xfontdump.so /path/and/name/to/application

anonymous
()
Ответ на: комментарий от anonymous

блять, совсем про ёбаную разметку забыл...

#include <dlfcn.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <unistd.h>
#include <string.h>
/*
   Devoted to Cyril Slobin for his excellent works in area
      of Russification

         Copyright (C) 2002 by V. Wagner
  */
  void report(const char *function, const char *name);
  XFontStruct *(*RealLoadQueryFont) (Display *display, const char* name);
  Font (*RealLoadFont) (Display *display, const char *name);
  Display* XOpenDisplay( const char* display_name) {
      void * handle=dlopen("libX11.so.6", RTLD_NOW | RTLD_GLOBAL);
          void *(*RealOpenDisplay)(const char*);
      if (!handle) exit(127);
          RealOpenDisplay=dlsym(handle, "XOpenDisplay");
      RealLoadQueryFont=dlsym(handle, "XLoadQueryFont");
        RealLoadFont=dlsym(handle,"XLoadFont");
    return (*RealOpenDisplay)(display_name);
    }
    XFontStruct *XLoadQueryFont (Display *display, _Xconst char* name) {
      report("XLoadQueryFont",name); 
        return (*RealLoadQueryFont) (display, name);
}  
Font XLoadFont (Display *display, _Xconst char *name) {
  report("XLoadFont",name);
    return (*RealLoadFont) (display, name);
    }  

    void report (const char *function,const char *name) {
      char buffer[1024];
        strcpy(buffer,function);
  strcat(buffer,": ");
    strcat(buffer,name);
      strcat(buffer,"\n");
        write(2,buffer,strlen(buffer));
}

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.