Newsgroup: it.comp.os.linux.iniziare
Titolo: [Urgente! GCC] Incompatibilità tra caratteri Windows-Linux in compilazione !! Help !!

Salve.
Stamattina Linux (openSuse 11 dvd) mi sta facendo venire una crisi di nervi
.....
Ho urgente bisogno di poter compilare pochi e piccoli file sorgente (.c) .
[si tratta di sorgenti compilabili soltanto in ambiente unix-like .... ]
Il problema è che questi files .c sono stati ricopiati, tal quali,
nel NotePad di Windows XP , e ora sono rilevati , in alcuni caratteri del
testo,
in modo totalmente errato sia da GVim sia da KWrite....sia, *soprattutto*,
da GCC o da CC !!!
In pratica non li posso compilare più !!!
Con KWrite ho risolto il problema.....si , ma solo quello della
visualizzazione !!
Come faccio a compilarli ora ??
[I sorgenti sono correttissimi, eh ..... qui non si deve proprio discutere.]
C'è un modo per impostare GCC o CC per compilare bene questi sorgenti ??
Faccio degli esempi : gli apici " vengono visualizzati(quindi visti anche da
GCC e da CC !!)
come <92> !!! Perciò non compila più , generando decine e decine di errori
!!
stesso vale per le stringhe e le opzioni delle funzioni printf , sprintf, et
similia ....
Almeno c'è un modo per "convertire" questi caratteri particolari
di incompatibilità windows-linux ??
Cavolo eppure io ho la tastiera e il sistema completamente localizzati !!!
Dove può essere il problema?
Ah altra cosa.....
col portatile non riesco a far apparire i caratteri speciali come le
parentesi graffe,
come tilde, etc etc !!! In nessun programma !!!
Come è possibile tutto ciò ??
In Linux tilde non si ottiene sempre con alt-123 ???
(una volta attivato il "tastierino numerico" sul portatile....)
Grazie per la gentile attenzione .
A presto!
F.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 da GCC o da CC !!!
tr -d '\r' < filewindows.c > fileunix.c

man dos2unix


ehm ....
forse hai letto con troppa superficialità la descrizione del mio
problema.....
(o mi sa che ti sei fermato a metà nella lettura...ehehe)
e infatti il tuo "tip" non è servito, praticamente, a nulla .
Tra l'altro ho fatto anche un altro tipo di domanda, più giù ... se ci butti
un pò un occhio ...
Io ho problemi di reale conversione di codifica
per la visualizzazione di codice sorgente C dall'ambiente Windows
all'ambiente Unix (Linux) .
gli errori di gcc non cominciano certo da '\r' come tu avrai pensato....
ma dagli apici doppi per le stringhe in C . --> " etc , etc .... ma questo
l'avevo detto .
Ciao .


 l'avevo detto .
Dove? (intendo: dove, in modo comprensibile e che desse a un lettore l'idea
di cio' che stava succedendo?)


Ho installato ed usato il tool in tutti i modi possibili .
Anche con le opzioni "-c iso" e " -c ascii " .
Non c'č proprio niente da fare !!!
GCC e CC continuano *sempre* a notare gli errori dal punto in cui,
nel sorgente .c , dovrebbero esserci apici singoli [ad es. per singoli
caratteri: char ch='a']
o doppi [ad es. nelle printf(...) o nei cout << .....] .
Come cavolo si convertono apici e doppi apici di Windows in Unix ???
Unix vede gli apici di Windows cosě: <Numero> (ad es. : <92> ) .
come ho spiegato nel primo post .
Ciao .


 di cio' che stava succedendo?)
appena più in basso :
------------------
Faccio degli esempi : gli apici " vengono visualizzati(quindi visti anche da
GCC e da CC !!)
come <92> !!! Perciò non compila più , generando decine e decine di errori
!!
stesso vale per le stringhe e le opzioni delle funzioni printf , sprintf, et
similia ....
--------------------
 
ora dimmi , con tutta sincerità : gli apici singoli o doppi corrispondono al
tuo '\r' ?? :-)
Il problema non erano i ritorni a capo , ma penso che fosse esclusivamente
riferito ad apici singoli e doppi,
come ho detto finora .
Simpaticamente e cordialmente,
Ciao !


 il "tastierino numerico" sul portatile....)
~ => altgr+ė
{ => altgr+7
} => altgr+0
-- 
Web marketing & community management:
http://www.insistema.com/

 } => altgr+0
WOOOOW
grazie!
segreti di Linux ? :-))
cosė non dovrō pių switchare tra tastiera normale e tastierino sul laptop!
devo provare se va bene con win , lol ;-P
Ciao!


 Come cavolo si convertono apici e doppi apici di Windows in Unix ???
E con che cosa lo hai scritto, il sorgente?
In ogni caso, con tr lo potresti correggere, individuando i vari 
caratteri sbagliati.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 printf quindi anche ... etc) .
Ora gia' ci sono piu' informazioni. Dal <92>, potrebbe essere che il file
sia salvato in win1252, che usa 145, 146, 147, e 148 rispettivamente per
apice singolo aperto/chiuso e apice doppio aperto/chiuso (anche se non so
interpretare il \237).
Prova questo:
tr '\0221\0222\0223\0224' \'\'\"\" < file.c
se non funziona, posta l'output di
hexdump -C file.c
in modo che si riesca a vedere esattamente che codifica usa.

 segreti di Linux ? :-))
convenzioni


 ...
Un modo è aprire il file in un editor (tipo Kwrite) e salvare 
il file con una tabella di caratteri diversa (come iso8859-15).
Ma tu hai detto di averlo già fatto e che non funziona. Lo hai 
fatto vero?
In alternativa recode, utrac, cstocs, convmv, enca.

 
I sorgenti C sono (e devono essere tassativamente) file ASCII a 7 bit.
Poi i compilatori accettano anche codifiche diverse, ma tutto il C usa 
solo ed esclusivamente ASCII a 7 bit.
Quindi se i caratteri sbagliati fanno parte del set di istruzioni C, 
significa che quei file sono stati manipolati male.
Ad esempio è stato usato un editor (MS Wordpad?) che ha convertito il 
carattere " in 'virgolette inglesi' (quelle fatte così “ ”), lo stesso 
dicasi per l'apice.
Non ci sono altre vie che rimpiazzare tutti i caratteri sballati e 
salvare in UTF-8.
Andrea

 corretta apici)
Non hai minimamente capito cosa e' sed, temo.


 convenzioni
peccato esista solo in Linux .
Però.....ecco, questa è una comodità : 1-0 per il pinguino ! :-)
In windows devo disattivare una parte della tastiera se voglio usare il
tastierino.....
ciao e grazie!


 ok solo due.....faccio Find & Replace da un editor grafico ! :-)
Va bene se hai un solo file sorgente; con sed aggiusti tutti i file 
dei sorgenti e gli header in un colpo solo.
 

 sed s/"<92>"/"'"/g <pippo.c >pippo2.c && mv pippo2.c pippo.c
credo che volevi intendere:
sed -i "s/\d92/'/g" pippo.c
Molto più sicura ma funziona solo con il sed della GNU.
 

 credo che volevi intendere:
Non puoi rompere i coglioni alle persone se scrivono decade anziché decennio
(che peraltro è solo l'ultima di una lunga serie di pignolerie
assolutamente fuori luogo), e poi fare strafalcioni come quello sopra, ben
peggiori. La prossima volta che correggi qualcuno sull'italiano linkerò
quel messaggio.
Eccheccazzo!

Marco scrisse:

Hai ragione, mi scuso

> > segreti di Linux ? :-))
Guarda che anche con windows (tastiera italiana su un HP compaq):
alt-gr e'        =  [
alt-gr +         =  ]
shift-alt-gr e'  =  {
shift-alt-gr +   =  }
fn-alt-J-K-O     =  ~           fn ed alt premuti assieme e tenuti premuti
-- 
+---------------------------------------------------------------------------+
|Al termine delle elezioni,la madre superiora fa la conta dei voti:         |
|DC, DC, DC,... PPP. Chiama subito suor Maddalena per le spiegazioni...     |
|Si era rotta la punta della matita, ed ho scritto: PORCA PUTTANA LA PUNTA! |
+-----#8---------------------Campagna contro le pubblicita` idiote.---------+

[ ... ]
Non so se hai già risolto, ma:
nel tuo caso:
- riapri i file con "wordpad" e salvali in formato txt
per il futuro:
- rimuovi notepad
- installa: 
http://www.flos-freeware.ch/notepad2.html
e vivi felice.
ciao
michele

 e vivi felice.
Io quando scrivo codice su windows preferisco 
http://notepad-plus.sourceforge.net/it/site.htm
 (su linux uso nano o 
emacs) :-)
-- 
God is real, unless if declared integer.
Powered by Debian GNU/Linux