


Manoloben (./31) :
un espace en fin de ligne tu te prenais 0
un espace en fin de ligne tu te prenais 0
JackosKing (./33) :
Ouai enfin ca c'est du détail, un indenteur est c'est fini on en parle plus.
Rintintin (./35) :
du bon code n'a pas besoin de commentaires, si ce n'est a quelques endroits cles ...
Nil (./36) :
Au moins le SE, ou une documentation de ce que font les fonctions (Entrées/Sorties). L'idéal étant d'utiliser un standard comme javaDoc, PHPDoc, ou autre pour pouvoir compiler une doc (sinon tu te retrouves à réécrire la fonction que le gars a déjà écrite il y a trois semaines).
Et du "bon code" pour toi ne l'est pas forcément pour un autre (par exemple, pour la lecture, je développe systématiquement mes blocs, même s'ils ne font qu'une ligne et que c'est facultatif ; et je ne supporte pas l'accolade qui commence sur la même ligne que le mot clé).
Rintintin (./37) :Et du "bon code" pour toi ne l'est pas forcément pour un autre (par exemple, pour la lecture, je développe systématiquement mes blocs, même s'ils ne font qu'une ligne et que c'est facultatif ; et je ne supporte pas l'accolade qui commence sur la même ligne que le mot clé).La par contre je trouve ca illisible, developper a tout va et pour rien (mettre toutes les accolades a la ligne) ca oblige a scroller comme un porc des qu'on cherche qqch dans le code ...
if ($rep <> ""){srand((double) microtime () * 1000000); $boundary = md5 (uniqid (rand ())); $titre = nomcongres." informations"; $header = "From: ".nomcongres." <".nomcongres."@********.fr>\n"; $header. = "Reply-To: ".nomcongres."@univ-lyon1.fr \n"; $header. = "MIME-Version: 1.0\n"; $header. = "Content-Type: multipart/alternative;boundary=$boundary\n"; $message = "\nThis is a multi-part message in MIME format."; [insérer encore plein de choses] }
if ($rep <> "") { srand((double) microtime () * 1000000); $boundary = md5 (uniqid (rand ())); $titre = nomcongres." informations"; $header = "From: ".nomcongres." <".nomcongres."@********.fr>\n"; $header. = "Reply-To: ".nomcongres."@univ-lyon1.fr \n"; $header. = "MIME-Version: 1.0\n"; $header. = "Content-Type: multipart/alternative;boundary=$boundary\n"; $message = "\nThis is a multi-part message in MIME format."; [insérer encore plein de choses] }
Kevin Kofler (./41) :
if ($rep "") {
Manoloben (./30) :
et a Epita on en parle pasun espace en fin de ligne tu te prenais 0
Alors la norme t'avais interet à la respecter
Nil (./42) :Kevin Kofler (./41) :
if ($rep "") {heureusement qu'on revient de cette norme avec l'accolade sur la ligne du mot-clé...
void foo(void) { ... }
Nil (./42) :Kevin Kofler (./41) :
if ($rep "") {heureusement qu'on revient de cette norme avec l'accolade sur la ligne du mot-clé...
Pollux (./44) :Nil (./42) :Kevin Kofler (./41) :
if ($rep "") {heureusement qu'on revient de cette norme avec l'accolade sur la ligne du mot-clé...
C'est quoi le problème ?Surtout que si le code est correctement indenté y a jamais besoin de regarder autre chose que l'indentation pour savoir si y a une accolade ou pas
(alors après, si votre code est suffisamment dégueulasse pour qu'il soit souvent indenté n'importe comment ça peut être une bonne idée de faire sauter aux yeux le fait que c'est mal indenté, mais bon...)
Pen^2 (./45) :
t sinon pour les affectations j'utilise un truc que Thibaut m'avait présenté :
var= value ; Je trouve que le déséquilibre reflète bien l'idée d'affectation.
Pollux (./46) :
(ouais mais c'est très mochevar = value; powa
)
Nil (./47) :
Ben moi j'aime bien savoir quand commence mon bloc. La première chose qui accroche mon oeil, c'est pas l'indentation (surtout quand il y a plein de blocs imbriqués), c'est l'accolade. Si je ne la vois pas clairement (et surtout, alignée par rapport à la fermante, c'est surtout ça qui heurte le côté cartésien de mon esprit), je me sens mal à l'aise. Puis en xml, par exemple, il ne viendra jamais à l'idée de ne pas aligner au même niveau une balise ouvrante et une fermante. Pour moi, c'est le même problème. Pour moi, ce n'est pas le mot clé (if, while ou autre) qui "ouvre" le bloc. Il est juste une information sur la façon dont le bloc suivant va être traité, c'est tout.
int fast_and_perfect_hash(const char *str, int length) // works only with HASH_TABLE_SIZE = 256 or 512 or 1024 { // very good Daniel Julius Bernstein's algorithm // speed optimized by Pollux // unrolled by Thibaut for more speed // many other speed optimizations by Pen2 // generates very uniform hash tables even with non prime modulos register unsigned int hash = 5381; // DJB Hash register unsigned int hash5 = 0; register const char *s; register int i; s= str; i= (unsigned)length / 4; while (i--) { hash5+= hash; hash+= *s++; hash5+= hash; hash+= *s++; hash5+= hash; hash+= *s++; hash5+= hash; hash+= *s++; } i= (unsigned)length % 4; while (i--) { hash5+= hash; hash+= *s++; } return (hash + (hash5<<5)) % HASH_TABLE_SIZE; }
/* ---------------------- */ /* -- DEBUT DU FICHIER -- */ /* ---------------------------------------------------------------- */ /* Scripts de gestion d'authentification LDAP */ /* (c) 2005 Centre de Ressources Informatiques - XXXXXXXXXXXX */ /* (c) 2006 Centre de Ressources Informatiques - XXXXXXXXXXXX */ /* Jxxxxxxx Dxxxx, portions Fxxxxxxx */ /* Certains scripts sont basés sur les scripts Perl d'Idealix.org */ /* la fonction fputcsv est tirée du site www.php.net */ /* ---------------------------------------------------------------- */ require_once 'CHAP.php'; require_once 'ldap_connect.php' ; require_once 'globals.php' ; $hash = new Crypt_CHAP_MSv2(); //Variables définies en "dur" //TODO : les passer à l'état de constantes et les migrer vers constantes.php $org = "IUFM Lyon"; $dir = "/home/"; $unix_group = 513; $shell = "/bin/null" ; //"/bin/bash" si on veut autoriser l'authentification Unix; $time = time(); /* ---------------------------------------------------------- /* Gestion des groupes LDAP /* ------------------------ /* /* Les groupes LDAP ne sont pas vraiment des groupes au sens où on pourrait l'entendre. /* Un utilisateur est affecté à un groupe si son attribut 'description' a pour valeur l'intitulé du groupe. /* Un groupe ne peut être qu'un alphanumérique. Le caractère souligné est toléré. /* /* Liste des fonctions de gestion : /* /* group_create($groupe) : crée un groupe (ajoute $groupe à l'attribut 'description' de root) /* group_syntax($groupe) : vérifie que $groupe est un alphanumérique débutant par un alpha uniquement. Le caractère souligné est toléré. /* group_exist($groupe) : retourne 1 si le groupe existe, 0 sinon /* group_purge($groupe) : supprime tous les membres d'un groupe, même s'ils appartiennent aussi à un autre groupe, puis supprime la valeur $groupe des attributs 'description' de l'utilisateur root /* group_list() : retourne la liste des groupes sous forme d'un tableau à une entrée /* group_users($group) : retourne la liste des utilisateurs d'un groupe donné sous forme d'un tableau /* group_delete($group) : supprie l'existence d'un groupe de la liste gérée par root /* /* ----------------------------------------------------------*/ /* group_syntax($groupe) : vérifie que $groupe est un alphanumérique débutant par un alpha uniquement. Le caractère souligné est toléré. /* Requiert : rien /* Vérifie : la syntaxe de la chaine $groupe (un alpha, suivi d'au moins un aphanumérique ou d'un souligné /* Retourne : 1 si la variable vérifie l'expression régulière /* 0 sinon */ function group_syntax($groupe) { if (!$groupe) { return 0 ; } $preg_matchGroup = "(^[A-Za-z]+[A-Za-z0-9\-_-]+$)"; if (preg_match($preg_matchGroup, $groupe)) { return 1; } return 0; }
Zephyr (./55) :
parceque la taille des tabs dans l'éditeur que tu utilises n'est pas la même que la taille des tabs de ton navigateur, peut-être ?
Thibaut (./56) :
Les tabulations c'est le côté obscur de la force
/* \name fastAndPerfectHash very good Daniel Julius Bernstein's algorithm speed optimized by Pollux unrolled by Thibaut Barthelemy for more speed many other speed optimizations by Julien Monville generates very uniform hash tables even with non prime modulos \arg pStr_ : Chaine ... \arg length_ : longueur de chaine (A quoi ca sert?) \pre HASH_TABLE_SIZE = 256 or 512 or 1024 and length_ <= pStr_'s length \post nothing */ int fastAndPerfectHash(const char *pStr_, unsigned int length_){ REQUIRE( (HASH_TABLE_SIZE == 256 || HASH_TABLE_SIZE == 512 || HASH_TABLE_SIZE == 1024) && lenght_ <= strnlen(pStr_, length_)); { register unsigned int hash = 5381; // DJB Hash register unsigned int hash5 = 0; register int i; i = length_ / 4; while (i--){ hash5 += hash; hash += *pStr_++; hash5 += hash; hash += *pStr_++; hash5 += hash; hash += *pStr_++; hash5 += hash; hash += *pStr_++; } i = length_ & 3; while (i--){ hash5 += hash; hash += *pStr_++; } return (hash + (hash5 << 5) ) & (HASH_TABLE_SIZE - 1); } }
/** * CoreCPU - The Quick6502 Project * corecpu.c * * Created by Manoel Trapier on 24/02/08 * Copyright 2008 986 Corp. All rights reserved. * * $LastChangedDate$ * $Author$ * $HeadURL$ * $Revision$ * */ /* Depending on the OS, one of these provide the malloc function */ #include <stdio.h> #include <stdlib.h> #include <string.h> {snap} /** * Initialise the CPU * * Inputs: * * - CPU Init structure: * - Memory Read function pointer * - Memory Write function pointer * - Fast memory read function pointer (for opcodes read) * - Fast page 0 function Read/Write * - Fast page 1 function Read/Write * * Output: * * (void *): An opaque pointer to the internal structure of the CPU. * NULL if an error occured ! */ quick6502_cpu *quick6502_init(quick6502_cpuconfig *config) { quick6502_cpu *cpu; /* Alloc structure */ cpu = (quick6502_cpu *) malloc (sizeof (quick6502_cpu)); if (!cpu) return NULL; /* Initialise other variables */ cpu->running = 0; /* CPU is currently NOT running */ cpu->cycle_done = 0; /* Initialise registers */ cpu->reg_A = 0; cpu->reg_X = 0; cpu->reg_Y = 0; cpu->reg_S = 0xFF; cpu->reg_P = Q6502_D_FLAG | Q6502_I_FLAG; if (config->memory_read != NULL) cpu->memory_read = config->memory_read; else goto init_error; if (config->memory_write != NULL) cpu->memory_write = config->memory_write; else goto init_error; if (config->memory_opcode_read != NULL) cpu->memory_opcode_read = config->memory_opcode_read; else cpu->memory_opcode_read = config->memory_read; if (config->memory_page0_read != NULL) cpu->memory_page0_read = config->memory_page0_read; else cpu->memory_page0_read = config->memory_read; if (config->memory_page0_write != NULL) cpu->memory_page0_write = config->memory_page0_write; else cpu->memory_page0_write = config->memory_write; if (config->memory_stack_read != NULL) cpu->memory_stack_read = config->memory_stack_read; else cpu->memory_stack_read = config->memory_read; if (config->memory_stack_write != NULL) cpu->memory_stack_write = config->memory_stack_write; else cpu->memory_stack_write = config->memory_write; return cpu; init_error: if (cpu) free (cpu); return NULL; } {snap} /** * Run cpu for at least X cycles * * Output: * * int: (Number of cycle really done) - (Number of cycle asked) */ int quick6502_run(quick6502_cpu *cpu, int cycles) { cpu->running = !0; while(cpu->cycle_done < cycles) { quick6502_exec_one(cpu); } cpu->cycle_done -= cycles; cpu->running = 0; return cycles + cpu->cycle_done; }