Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#401 Le 26/09/2011, à 21:59

Pylades

Re : /* Topic des codeurs [6] */

Bah ouais ! Avec Vim, tu peux régler ce comportement en modifiant la variable fileencodings.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#402 Le 26/09/2011, à 22:14

HP

Re : /* Topic des codeurs [6] */

Πυλάδης a écrit :

Avec Vim, tu peux régler ce comportement en modifiant la variable fileencodings.

Bah ouais… mais c'est plus de la divination alors tongue.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#403 Le 26/09/2011, à 22:19

Rolinh

Re : /* Topic des codeurs [6] */

migrate from GTK2 to GTK3 done smile

Par contre, je viens de me rendre compte d'un truc bizarre:
getchar() retourne un char casté a un int... sémantiquement, on ne s'attend pas à ça quand même!

Hors ligne

#404 Le 26/09/2011, à 22:26

grim7reaper

Re : /* Topic des codeurs [6] */

Rolinh a écrit :

@Grim: j'ai corrigé les erreurs que tu as relevées avant ton poste du 6 juillet dernier.
En ce qui concerne le poste en question, tu avais soulevé le "problème" de MAXPATHLEN. En fait, j'en avais pas mal discuté avec quelques amis codeurs dont Kaworu qui en avait fait un blog post qui t'intéressera sûrement.

Ouais je connaissais déjà, en fait j’ai dû jeter un œil à tous ses articles sur le C.

Rolinh a écrit :

getchar() retourne un char casté a un int... sémantiquement, on ne s'attend pas à ça quand même!

Bah s’il renvoie un int c’est pour gérer EOF. S’il renvoyait un char, ça ne serait pas possible donc ça ne me choque pas plus que ça.

Hors ligne

#405 Le 26/09/2011, à 22:29

Rolinh

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :

Bah s’il renvoie un int c’est pour gérer EOF. S’il renvoyait un char, ça ne serait pas possible donc ça ne me choque pas plus que ça.

Bah du coup je fais quoi? J'ignore le cast implicite? Car la variable dans laquelle je souhaite mettre ça est de type char...

Hors ligne

#406 Le 26/09/2011, à 22:31

grim7reaper

Re : /* Topic des codeurs [6] */

Le plus propre c’est de tester si c’est EOF, si ça l’est pas tu peux caster en char sans problème.

Dernière modification par grim7reaper (Le 26/09/2011, à 22:32)

Hors ligne

#407 Le 26/09/2011, à 22:33

tshirtman

Re : /* Topic des codeurs [6] */

HP a écrit :
ArkSeth a écrit :

(D'ailleurs, en parlant du « # coding: utf-8 », il me semblait avoir lu (sur ce topic, justement, en plus) que les trucs bizarres genre « -*- » que les gens mettent souvent dans leur déclaration d'encodage étaient spécialement destinés à ce que le commentaire soit lu d'une certaine manière par Emacs…

Je ne pense pas… en Python, python se sert de çà :

# -*- coding: utf-8 -*-

c'est très bien expliqué pourquoi et comment dans un PEP quelconque… de toute façon, il est nécessaire et indispensable d'annoncer l'encodage d'un fichier texte, ça devrait sembler évident pour tout le monde ; emacs le comprend, lui aussi, même si il peut s'en passer… mais alors, il va certainement essayer de bosser avec l'encodage par défaut défini par l'utilisateur ; le résultat n'est donc pas garanti.

non, dans la PEP, les -*- sont un exemple de décoration inutile autorisées.

# coding: utf-8

marche aussi bien.

Hors ligne

#408 Le 26/09/2011, à 22:34

Rolinh

Re : /* Topic des codeurs [6] */

@grim: bon bah du coup je met mes variables en int ^^ C'est kifkif et comme de toute façon je checkais le EOF plus loin...

Hors ligne

#409 Le 26/09/2011, à 22:37

Elzen

Re : /* Topic des codeurs [6] */

Hmm, en fait, les couleurs dans le prompt, c'est joli, mais ça perturbe complètement l'interpréteur… et le coup des \[ \] comme en shell n'a pas l'air de marcher, donc j'vais devoir revenir à un truc plus classique hmm

Hors ligne

#410 Le 26/09/2011, à 22:41

grim7reaper

Re : /* Topic des codeurs [6] */

@Rolinh : bon comme tu as appliqué mes dernières remarques, je pourrais finir de regarder ton code (faudrait que j’essaye de faire ça avant que mon projet de cette année débute). Il ne me restait qu’un bout de copy.c je crois.

Hors ligne

#411 Le 26/09/2011, à 23:08

Rolinh

Re : /* Topic des codeurs [6] */

Faudra pull alors wink
Je suis en train de finir de corriger tout ce qui ne passait pas avec la ligne de compil méchante.
Il ne me reste que ça:

gui.c: In function ‘on_add_clicked’:
gui.c:101:2: warning: ISO C90 forbids mixed declarations and code [-pedantic]
gui.c: In function ‘on_about’:
gui.c:188:3: warning: string length ‘738’ is greater than the length ‘509’ ISO C90 compilers are required to support [-Woverlength-strings]

qui me laisse un peu perplexe...
La ligne 101 en question:

struct file_to_copy new_file;

le file_to_copy est défini comme ceci dans list.h:

struct file_to_copy{
    char    *from;
    char    *to;
    int    err_code;
    off_t    size;
    struct    file_to_copy *next;
};

EDIT: mais bien volontiers si tu as l'envie de finir ta review. Elle s'est avérée rudement précieuse. smile

Dernière modification par Rolinh (Le 26/09/2011, à 23:09)

Hors ligne

#412 Le 26/09/2011, à 23:40

Rolinh

Re : /* Topic des codeurs [6] */

Arf, c'est fixed. C'était à cause du cast à void un peu plus haut ^^ (ouais, ouais, les fameux paramètres obligatoires dont jmef...)
Reste plus que l'histoire de la string.... mais là...

Hors ligne

#413 Le 26/09/2011, à 23:44

HP

Re : /* Topic des codeurs [6] */

tshirtman a écrit :
HP a écrit :
ArkSeth a écrit :

(D'ailleurs, en parlant du « # coding: utf-8 », il me semblait avoir lu (sur ce topic, justement, en plus) que les trucs bizarres genre « -*- » que les gens mettent souvent dans leur déclaration d'encodage étaient spécialement destinés à ce que le commentaire soit lu d'une certaine manière par Emacs…

Je ne pense pas… en Python, python se sert de çà :

# -*- coding: utf-8 -*-

c'est très bien expliqué pourquoi et comment dans un PEP quelconque…

non, dans la PEP, les -*- sont un exemple de décoration inutile autorisées.

# coding: utf-8

marche aussi bien.

Je me doute bien que les -*- sont décoratifs…
ils disent d'ailleurs, à ce propos :

using formats recognized by popular editors

et précisent que Python pourrait comprendre la modeline de Vim définissant l'encodage.

Et le plus important :

More precisely, the first or second line must match the regular expression "coding[:=]\s*([-\w.]+)".

ce qui confirme que ça doit se trouver sur l'une des 2 premières lignes… et que de nombreuses variations sont possibles.

Dernière modification par HP (Le 26/09/2011, à 23:45)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#414 Le 27/09/2011, à 09:25

grim7reaper

Re : /* Topic des codeurs [6] */

Hello World!

Rolinh a écrit :
gui.c: In function ‘on_about’:
gui.c:188:3: warning: string length ‘738’ is greater than the length ‘509’ ISO C90 compilers are required to support [-Woverlength-strings]

En fait, c’est juste que ta chaîne littérale (celle qui initialise license) est trop longue. C’est activé par l’option Woverlength-strings :

man 1 gcc a écrit :

       -Woverlength-strings
           Warn about string constants which are longer than the "minimum maximum" length specified in the C standard.  Modern compilers generally allow string constants which are much longer than the standard's minimum limit, but very portable programs should avoid using longer strings.

           The limit applies after string constant concatenation, and does not count the trailing NUL.  In C90, the limit was 509 characters; in C99, it was raised to 4095.  C++98 does not specify a normative minimum maximum, so we do not diagnose overlength strings in C++.

           This option is implied by -pedantic, and can be disabled with -Wno-overlength-strings.

Soit tu passes en C99, soit tu découpes ta licence en deux variables que tu initialises et enfin tu fais la concaténation dans la variable license.

Hors ligne

#415 Le 27/09/2011, à 09:27

Rolinh

Re : /* Topic des codeurs [6] */

@grim: bah voui je sais bien mais je veux pas passer en C99 pour ça et la concaténation bah heu... je trouvais ça dégueu... sad

Hors ligne

#416 Le 27/09/2011, à 09:32

grim7reaper

Re : /* Topic des codeurs [6] */

Bah c’est vrai que la concaténation c’est moyen mais ça reste le moins pire. Je ne vois pas grand-chose d’autres si ce n’est désactiver spécifiquement ce warning ou lire la chaîne depuis un fichier hmm

Hors ligne

#417 Le 27/09/2011, à 09:36

Rolinh

Re : /* Topic des codeurs [6] */

Ouep, j'étais un peu comme toi. Bon, lire depuis un fichier ça fait une opération d'entrée-sortie un peu inutile... Bah, j'ai divisé en 2 strings et fais un strcat hmm
Je suis en train de m'arracher les cheveux sur la progress bar... sad

Hors ligne

#418 Le 27/09/2011, à 09:45

grim7reaper

Re : /* Topic des codeurs [6] */

Sinon il y a peut-être mieux smile
Vu que tu bosses en Gtk3, tu peux utiliser

gtk_about_dialog_set_license_type(GTK_ABOUT_DIALOG(dialog), GTK_LICENSE_GPL_2_0);

Trouvé ici.

Dernière modification par grim7reaper (Le 27/09/2011, à 09:46)

Hors ligne

#419 Le 27/09/2011, à 09:54

Rolinh

Re : /* Topic des codeurs [6] */

Rhôôôôô.

Grim.... <3

Hors ligne

#420 Le 27/09/2011, à 10:41

grim7reaper

Re : /* Topic des codeurs [6] */

Et sinon c’est quoi ton soucis avec la progress bar ?

Hors ligne

#421 Le 27/09/2011, à 10:50

Rolinh

Re : /* Topic des codeurs [6] */

En fait, je crois que mon soucis est ailleurs.
Il faut que je lance un thread pour la copie car sinon, lors de la copie, on perd la main sur la main window (et tout le reste d'aileurs).
M'enfin, là j'ai commité un truc barbare/degueu mais je me demande s'il ne faudrait pas que j'utilise des gthread...
Faudra que je me penche sérieusement là-dessus.

Hors ligne

#422 Le 27/09/2011, à 11:55

Elzen

Re : /* Topic des codeurs [6] */

grim7reaper a écrit :

Bah c’est vrai que la concaténation c’est moyen mais ça reste le moins pire. Je ne vois pas grand-chose d’autres si ce n’est désactiver spécifiquement ce warning ou lire la chaîne depuis un fichier hmm

À ce sujet… j'suis conscient qu'une opération d'I/O pour ça n'est pas l'idéale, mais en l'occurrence, je m'interroge sur la pertinence de foutre le texte de la licence en dur dans le code…

Ça veut dire que si un jour tu décides de changer la licence (pour passer de la GNU GPL v2 à la GNU GPL v3, par exemple), tu dois aller modifier le code du logiciel ? Ça me paraît quand même assez bizarre…

Je pense que pour ça en particulier, lire le texte de la licence depuis un fichier externe (non-code) serait quand même un peu plus sémantiquement correct, non ?

Hors ligne

#423 Le 27/09/2011, à 12:06

Ras&#039;

Re : /* Topic des codeurs [6] */

Ras' a écrit :
kamui57 a écrit :

Ras' : réuploader http://kamui57.toile-libre.org/reuploadpic/
bon le code est pas encore commenté tout ça, alors il est pas encore dispo

Han !
Strou cool big_smile
Tu gères trop smile

Up ?
Au pire j'le commente le code, j'mettrais plein de trucs rigolo tongue
(plus sérieusement, même si j'n'arriverai pas à coder un truc comme ça, je dois pouvoir le comprendre)


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#424 Le 27/09/2011, à 17:26

grim7reaper

Re : /* Topic des codeurs [6] */

ArkSeth a écrit :

Je pense que pour ça en particulier, lire le texte de la licence depuis un fichier externe (non-code) serait quand même un peu plus sémantiquement correct, non ?

Oui, en théorie c’est mieux car on sépare le code des données.
En pratique, dans le cas présent, on est avec du C donc ça rajoute des trucs chiant à mettre en œuvre pour pas grand-chose.
Tu peux te contenter de lire le fichier dans un buffer de taille fixe, mais si tu changes la licence la longueur du texte va changer aussi donc faudra retoucher le code. De plus, un méchant pourrait modifier le fichier que tu lis pour mettre un texte long et faire planter ton soft.
Bon du coup il faut y aller dynamiquement et là (vu qu’on est en C) ça devient chiant :
- faut lire ligne à ligne (tu sais pas la taille max d’une ligne => lecture morceaux par morceaux avec les allocs qui vont bien) ;
- faut lire tout le fichier (donc là encore de l’alloc dynamique et la gestion des erreurs/libération qui l’accompagne) ;
- faut que le fichier existe, sinon tu fais quoi ?

Donc dans des langages de haut niveau, ouais pourquoi pas (reste le problème du comportement en cas d’absence du fichier) mais en C vaut mieux mettre ça en dur. Quitte à le placer dans un fichier d’en-tête bien à part du reste pour faire quand même une séparation.



[HS]
Bon j’ai commencé à mater les config pour mon futur PC et j’ai trouvé un truc pas trop moche (i7 à 2Ghz, 8Go de RAM, carte graphique AMD, 4 port USB (dont 2 ports USB 3), DD de 750Go). Le seul point qui me titille c’est la carte wifi, ça semble (faudra que je vérifie comme il faut) être du Realtek : c’est supporté comment ça avec Linux ?
[/HS]

Dernière modification par grim7reaper (Le 27/09/2011, à 17:49)

Hors ligne

#425 Le 27/09/2011, à 17:53

Rolinh

Re : /* Topic des codeurs [6] */

@ArkSeth: je crois que grim a répondu pour moi smile
M'enfin, en même temps, c'est pas comme si tu modifiais la licence tous les 3 mois!
Ce qui est marrant avec la solution de grim, c'est que maintenant, quand on regarde le about dialog pour voir la licence, une a bêtement ça:
1317142335.png
Donc un lien sur le site de GNU et un petit disclaimer ^^

@grim: c'est quoi comme portable?

Hors ligne