xsel Funktionsweise.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
EmanuelBennici
Beiträge: 19
Registriert: 29.07.2017 16:36:14

xsel Funktionsweise.

Beitrag von EmanuelBennici » 06.09.2017 01:57:16

Hey,
ich habe mir den Sourcecode von xsel (github: https://github.com/kfish/xsel) angeschaut.
Allerdings bin ich nicht ganz schlau daraus geworden wie der Author es hinbekommt den Zwischenablage Speicher auszulesen und zu überschreiben.
(Also Schalter '-o' & '-i -b').

Wie funktioniert es (mit dem Source Code?)

MfG Emanuel

Benutzeravatar
Meillo
Moderator
Beiträge: 4605
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: xsel Funktions weise.

Beitrag von Meillo » 06.09.2017 07:14:59

Link zur Quellcodedatei: https://github.com/kfish/xsel/blob/master/xsel.c

Selection auslesen faengt in Zeile 820 bei get_selection_text() an. Die Kernfunktion scheint XConvertSelection() in Zeile 781 zu sein. Die hat eine Manpage, in der du nachlesen kannst. Da solltest du wohl durchblicken, wenn du Schritt fuer Schritt durch den Code liest. Allzu umfangreich scheint mir das Auslesen nicht zu sein.

set_selection() in Zeile 1725 scheint mir etwas komplizierter zu sein. Die Kommentare deuten das an und es gibt eine Reihe Hilfsfunktionen. Da muss man wohl auch irgendein Protokoll befolgen. Hier bin ich dann auch ueberfragt, weil ich bislang kaum mit der Xlib programmiert habe und den Code ebenso Schritt fuer Schritt analysieren muesste.

Wenn es 2300 Codezeilen braucht, um die X Selection zu manipulieren, dann sieht man daran, dass das eine komplizierte Sache sein muss. (Mein Windowmanager, der ebenfalls die Xlib benutzt hat weniger als 2000 Codezeilen!) Hast du mal online nach Tutorials geschaut, um die X Selection zu manipulieren? Vielleicht findest du so strukturelle Ansatzpunkte. Ansonsten: Greppe alle Funktionen, die mit `X' anfangen aus dem Sourcecode und lese deren Manpages, dann weisst du zumindest mal was im Hintergrund passiert.

Ist deine Motivation einfach nur den Code zu verstehen, oder hast du weitere Ziele?

Btw: Du koenntest natuerlich auch den Autor von xsel(1) selbst fragen. ;-)
Use ed(1) once in a while!

EmanuelBennici
Beiträge: 19
Registriert: 29.07.2017 16:36:14

Re: xsel Funktions weise.

Beitrag von EmanuelBennici » 10.09.2017 13:41:13

Okay, danke :)

Antworten