Cateva date privind codul sursa: 1. dictfiles.h #cat dictfiles.h #define DF1 "/usr/local/share/rospell/dictionary.ro" #define DF2 "/usr/local/share/rospell/dictionary.fixed" #define DF3 "/usr/local/share/rospell/dictionary.en" #define DF4 "/usr/local/share/rospell/libc.tags" #define DF5 "/usr/local/share/rospell/latexhelp.tags" Acest fisier este creat de scriptul de configurare "./configure" urmat de comanda "make" si specifica o serie de locuri in sistem de unde rospell isi ia dictionarele si fisierele de help. Aceste locuri in sistem sunt hardcoded in executabil. Inainte de a incepe orice development acest fisier trebuie generat ("#./configure && make"). 2. src/rospell/moc_*.cpp Acestea fisiere sunt generate de utilitarul moc distribuit impreuna cu qt. Generarea lor este necesara in cazul in care se fac modificari interfetei grafice: # cd src/rospell # ./buildqt3.sh Fisierele moc_*.cpp sunt distribuite in arhiva sursa a programului. 3. Development Exista doua posibilitati de development: - din radacina arhivei, se compileaza cu "make rospell" - din src/rospell, se compileaza cu "./buildqt3.sh", rezultatul compilarii este in src/rospell/release 4. Suport preliminar pentru Win32 si QT4 Am in acest moment o versiune mai veche care compileaza si ruleaza sub win32 folosind QT4. Orice munca in aceasta directie a fost temporar abandonata. Nu am nici un plan de a relua munca cel putin pana QT4 incepe sa fie folosit de KDE si inclus automat in orice distributie Linux. Sub win32 am folosit mingw. O serie de probleme apar relativ la implementarea bibliotecii standard C pentru acest mediu. In plus, apar probleme relativ la modul de implementare QT4. 5. FreeBSD FreeBSD este suportat. Nu am reusit sa-l fac pe ./configure sa functioneze, asadar sub FreeBSD compilarea se face folosind BSDMakefile care a fost creat manual. Fisierul dictfiles.h este generat de BSDMakefile, fisierele moc_*.cpp sunt cele create sub Linux, compilarea se face in makefile ceva la genul # gcc src/rosplell/*.cpp deci, adaugarea de noi fisiere in src/rospell nu necesita o modificare a BSDMakefile. 6. Fisiere de configurare runtime La pornire, rospell citeste fisierul /home/user/.rospell/config. Prelucrarea datelor se face in src/rospell/global.h. global.h nu are un corespondent .cpp, tot codul este dezvoltat inline. La iesirea din program o noua versiune a fisierului config este salvata. /home/user/.rospell/alias contine toate alias-urile definite de utilizator folosind meniul Options/Alias. /home/usr/.rospell/backup conţine un backup pentru toate fisierele deschise in editor. Backupurile sunt folosite pentru Tools/Session Diff. 7. Dictionare Trei dictionare sunt incarcate in memorie de catre editor: - /usr/local/share/rospell/dictionary.ro sau dictionary.en - dictionarul principal, toate cuvintele cu litere mici. Verificarea unui cuvant in dictionar se face convertind cuvantul la litere mici - /usr/local/share/rospell/dictionary.fixed - cuprinde in general nume proprii, literele majuscule sunt luate in considerare la spelling - /home/user/dictionary.user - cuprinde cuvinte adaugate de utilizator in timpul spellingului. Acest dictionar este incarcat la pornire si salvat automat la iesirea din program. Exista un al patrulea dictionar pentru cuvinte specificate de utilizator pentru a fi ignorate. La pornirea editorului acest dictionar este gol. La iesirea din editor, dictionarul nu este salvat. Acest dictionar este folosit si pentru cuvintele cheie latex. 8. Tools Urmatoarele unelte sunt disponibile in src/tools: - unmunch.c, unmunch.h sunt folosite pentru extragerea de cuvinte din arhivele OpenOffice.org. Este distribuit si instalat de "make install" sub numele de rounmunch si este folosit pentru generarea dictionarelor principale (la care se adauga o serie de cuvinte care nu se gasesc in aceste dictionare). - vimtranslate.c este instalat sub numele de rovimtranslate si este folosit pentru generarea de fisiere help pentru rospell preluate din vim. - taghelp.c este instalat sub numele de rotaghelp si este folosit pentru generarea de fisiere help pentru rospell pornind de la arhive folosite de utilitarul info. Momentan a fost generat help pentru biblioteca standard C.