בזמן האחרון חזרתי לעשות binding לעוד header של Xlib (כולל ההרחבות שלו) לפסקל. ובמקור רציתי לכתוב "אל תיתנו להם C לידיים" אבל הבעיה הזו מוכרת בכל עולם התכנות, ואם העולם היה כתוב רובו בפסקל (והגיע הזמן באמת שזה יקרה), אז אנשים היו מתעללים בשפה באותה מידה.
אם חשבתם לרגע למה X כזה מסריח, מספיק שתעיפו מבט בקוד שלו. נתחיל בדברים "עדינים" כמו struct אחד מוכר וידוע בשם XEvent ועוד struct בהרחבה של X שנקרא xEvent (ההבדלים הם ב X מול ה x – כלומר הגודל של הX).
אתם עדיין לא הגעתם למצב שבו אתם מתחילים לקבל גועל נכון ?
אז הנה משהו יותר כבד (פרס למי שמצליח לקרוא. הפרס הוא כמובן לשכתב את זה לשפה נורמאלית כדוגמת פסקל
[אם כי כבר עשיתי את העבודה בשבילכם]):
extern int (*XSetExtensionErrorHandler(
int (*handler)(
Display *,
char *,
char *
)
))(
Display *,
char *,
char *
);
מה, אתם לא מבינים ?! זה callback מוגדר בתוך פונקציה שמחזירה את הcallback עם אותם הפרמטרים. זה מאוד קל ופשוט ! לקרוא את ההמשך »

