El dia 30 desembre de 2013 22.49, Ernest Adrogué <nfdi...@gmail.com> ha escrit:
> No tinc coneixments de C++. Fa temps em vaig mirar l'algoritme de divisió > de paraules de GTK però al final ho vaig deixar estar. Em sembla que era > Pango, qui ho feia. > > Correcte, així és. Teòricament pango-break segueix UAX TR29 [2], però no puc verificar-ho sense usar Cairo. Caldria fer un petit programa "pango only" que marquès els talls de paraula en una frase de prova, per a verificar que pango va bé. En cas afirmatiu, anar a buscar el problema a Cairo. En cas negatiu, veure on falla pango, perquè el codi [2] sembla correcte (l'he resseguit unes quantes vegades). El primer pas seria arreglar el local ca_ES, perquè dóna la categoria del > caràcter incorrecta. Segons he llegit a [1] hauríem de contactar amb el > mantenidor del local ca_ES de la libc de GNU (Jordi Mallach, em sona que el > tenim en aquesta llista). > Sí, el tenim per aquí, i si no el puc localitzar per altres bandes, :) Ara... la solució bona és que readline usi UAX TR29 per a detectar paraules. L'algorisme lletres i números és massa simple per a detectar paraules. En cas que els desenvolupadors de readline no vulguin, doncs el pla B que indiques seria una bona aproximació i funcionaria, sempre que tinguem el locale català actiu. Caldria fer proves, per exemple que passa si intentem passar a minúscula o a majúscula el caràcter. Com has canviat la definició del locale? Explica-m'ho senzill, sisplau, :) Abans que ningú no faci la proposta, ja es va intentar posar el punt volat (U+00B7) com a caràcter alfabètic a Unicode (valor predeterminat per a totes les llengües). Es va denegar. Les possibilitats de posar-ho allà són nul·les. De fet, estrictament parlant, el punt volat no és un caràcter alfabètic. És un signe de puntuació intern de paraula, per tant ja està ben classificat. Una altra cosa és que els algorismes ens perjudiquin i la drecera més fàcil sigui classificar-lo com alfabètic. Joan Montané > > [1] https://sourceware.org/glibc/wiki/Locales > > [2] https://git.gnome.org/browse/pango/tree/pango/break.c?id=1.28.3#n737