Letterscript

Όνομα:Ξενιτέλλης Σίμος - Χρυσοχέρης Ηλίας (rg.tenhtrof.ahc|rhcsaile#rg.tenhtrof.ahc|rhcsaile)
Project: Κατασκευή προγράμματος γραμμής εντολών για διαχωρισμό αλφαβητικών χαραkτήρων στον πίνακα Unicode
Γλώσσα: Οποιαδήποτε μας αρέσει!
Στόχος: Η βοήθεια στη διόρθωση μιας λανθασμένης λειτουργίας του Xorg, σχετική με το τελικό 'ς'
Βαθμός Δυσκολίας: Μέτριος


Σε πρώτη φάση να αναφέρω ότι δυστυχώς ο Σίμος δεν θα είναι μαζί μας στο camping και έτσι θέτω εγώ αυτό το project. Όμως θα μπορούμε να έχουμε τη βοήθειά του σε ότι χρειαστούμε, μιας και είναι αυτός που μου έδωσε την ιδέα.

Ποιό είναι το bug δάσκαλε;…

Στον Xorg υπάρχει ένα μικρό πρόβλημα σχετικό με το τελικό 'ς' στην Ελληνική γλώσσα. Όταν κάποιος έχει ενεργοποιημένο το Caps Lock στον υπολογιστή του και γράφει σε Ελληνικά, αν πατήσει το τελικό 'ς' αυτό αντί να δημιουργήσει το κεφαλαίο 'Σ', λόγω του Caps Lock, το αφήνει πεζό! Μπορείτε να δείτε λεπτομέρειες για το bug στο freedesktop.org.

Κι εμείς Παπαστρούμφ τι πρέπει να κάνουμε;

Λοιπόν… Οι προγραμματιστές του freedesktop αποφάσισαν πώς θα πρέπει να φτιαχτεί ένα απλό πρόγραμμα που να εκτελείται από τη γραμμή εντολών και να μας κατασκευάζει ένα αρχείο με όνομα something.h (το όνομα του αρχείου εξόδου καλό είναι να το δέχεται το πρόγραμμά μας σαν παράμετρο στη γραμμή εντολών). Αυτό το αρχείο θα μπορεί να γίνει include στον κώδικα του Xorg και τα υπόλοιπα τα αναλαμβάνουν οι προγραμματιστές του. Τι θα περιέχει αυτό το αρχείο; πολύ απλά ένα πίνακα της μορφής:

int myarray[] = {
 
     0x03DF, 1,   // είναι αλφαβητικό
     0x03E0, 0
     0x03E1, 1,
     0x03E2, 0,
     0x03E3, 0,
     0x03E4, 0,
     0x03E5, 0,
...
     0x03F0, 1,
     0x03F1, 1,
     0x03F2, 1,
     0x03F3, 1
};

Το πρόγραμμά μας δε θα τα παράγει αυτά αυθαίρετα. Θα πρέπει να δέχεται σαν είσοδο το αρχείο περιγραφής των χαρακτήρων Unicode και να παράγει τον πίνακά μας (και το όνομα του αρχείου εισόδου θα πρέπει να δηλώνεται στη γραμμή εντολών). Το παραπάνω παράδειγμα θα είναι αποτέλεσμα των γραμμών του αρχείου που φαίνονται ακολούθως:

03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
...
03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;

Πληροφορίες για το αρχείο εισόδου μπορείτε να βρείτε εδώ ενώ μια ακόμα βοήθεια για το Unicode είναι το αρχείο U0370.pdf. Στη σελίδα του freedesktop.org bug report υπάρχει και ένας τρόπος χρήσης του πίνακα. Με τη βοήθεια του script που αναφέρεται εκεί και μικρή διόρθωση στο κώδικα C μπορεί να δημιουργηθεί ένα patch για να μπει στο X.Org!

Σημείωση: Μερικές εισηγήσεις-script έχουν δοθεί για το θέμα στην ταχυδρομική λίστα ubuntu-gr και συγκεκριμένα εδώ

Δηλώσεις Συμμετοχής

Ενδιαφερόμενος email Ημέρες Τομέας Ενασχόλησης
Χρήστος Μπαχαράκης moc.liamg|rahapmc#moc.liamg|rahapmc Όλες -

Αποτελέσματα από το GCC2009

Ο Χρήστος έπιασε το νόημα και ξεκίνησε με bash scripting. Έφτιαξε ένα πρόγραμμα το οποίο δημιουργεί (ή τουλάχιστον έτσι υποψιζόμαστε) το επιθυμητό αρχείο. Το αρχείο το κάναμε submit στους κατάλληλους ανθρώπους και περιμένουμε να δούμε αν θα χρειαστεί κάποια αλλαγή ο κώδικας.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License