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.

#626 Le 29/06/2011, à 07:35

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

grim7reaper a écrit :

Hello World!



The Uploader a écrit :

Le langage D est à moi! A moiiiiiiiiiiiii!! \o/
*Adieu Java et C--* tongue

Huhu~~, ça m'étonnerais que tu aies déjà vraiment fait du C--.
Sauf si tu as écris un compilateur qui compile en code machine, mais je pense que c'est pas ton cas :]

Effectivement, à ne pas confondre avec le vrai C-- ^^


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#627 Le 29/06/2011, à 08:11

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

tshirtman a écrit :
Pylade a écrit :
tshirtman a écrit :

C'est une implémentation de l'opérateur ternaire, que ce soit "?" et ":" ou "if" et "else", c'est la même chose…

Ouais mais c’est trop verbeux, justement…

Pond moi n'importe quel programme complet, dans n'importe quel langage, et je te montre ma version python, on verra qui est le plus verbeux tongue (documenté, que j'ai pas a me prendre la tête à comprendre ce que ça fait si c'est un langage abscon).

+1 pour Pylade.

Sinon, voici un programme Ruby trouvé vite fait (mais qui n'utilise pas de ternaires "? :" ) :
http://www.arachnoid.com/ruby/RubyGUIPr … er.rb.html

#!/usr/bin/qtrubyinit
require 'regexp_tester_ui.rb'
require 'aboutdialog_ui.rb'
PROGNAME   = "RegExpTester"
PROGVER    = "0.1"
PROGTITLE  = "#{PROGNAME} #{PROGVER}"
=begin
   The Configuration class defines program values
   to be preserved in a configuration file.
=end
class Configuration
   attr_accessor :dataFile
   attr_accessor :dataPath
   attr_accessor :search
   attr_accessor :replace
   attr_accessor :global
   attr_accessor :case
   attr_accessor :extended
   attr_accessor :multiline
   def initialize
      @dataFile = ""
      @dataPath = ENV["HOME"]
      @search = ""
      @replace = ""
      @global = true
      @case = false
      @extended = false
      @multiline = false
   end
end
=begin
   The ConfigurationHandler class reads and writes
   the program configuration file and populates a
   Configuration class instance
=end
class ConfigurationHandler
   def initialize(conf,progName)
      @conf = conf
      @progName = progName
      @confPath = File.join(ENV["HOME"], "." + @progName)
      @iniPath = @confPath + "/" + @progName + ".ini"
      Dir.mkdir(@confPath) unless FileTest.exists?(@confPath)
   end
   def writeConfig
      file = File.new(@iniPath,"w")
      unless file.nil?
         @conf.instance_variables.sort.each { |x|
            xi = @conf.instance_variable_get(x)
            # escape strings
            if(xi.class == String)
               xi.gsub!(/\\/,"\\\\\\\\")
               xi.gsub!(/"/,"\\\"")
               xi = "\"#{xi}\""
            end
            file.write("#{x}=#{xi}\n")
         }
         file.close()
      end
   end
   def readConfig
      if FileTest.exists?(@iniPath)
         file = File.new(@iniPath,"r")
         file.each { |line|
            @conf.instance_eval(line)
         }
         file.close()
      end
   end
end
=begin
   AboutDialog subclasses AboutDialogUI
   (see below for more explanation)
=end
class AboutDialog < AboutDialogUI
   def initialize
      super
      setCaption("About #{PROGNAME}")
      @groupBox3.setTitle( "#{PROGTITLE}" )
      @textLabel2.setText("#{PROGNAME} is (c) Copyright 2006, P. Lutus. All rights reserved. This program is released under the GPL." )
   end
   def closeButton_clicked(*k)
      self.close()
   end
end
=begin
   — description of files and classes --
   regexp_tester.ui:
      user interface created by qtdesigner
      or kdevdesigner (basically the same program)
   regexp_tester_ui.rb:
      created using "rbuic" out of regexp_tester.ui,
      defines RegExpTesterUI class,
      which implements a Qt user interface in Ruby
   regexp_tester.rb:
      defines RegexpTester and several other classes
   RegExpTester subclasses RegExpTesterUI
   and provides the code body for the user interface
=end
class RegExpTester < RegExpTesterUI
   def initialize(app)
      super()
      @app = app
      # handle configuration issues
      @conf = Configuration.new
      @confHandler = ConfigurationHandler.new(@conf,PROGNAME)
      # read configuration file
      @confHandler.readConfig()
      # set checkbox values from configuration
      @globalCheckBox.setChecked(@conf.global)
      @caseCheckBox.setChecked(@conf.case)
      @extendedCheckBox.setChecked(@conf.extended)
      @multilineCheckBox.setChecked(@conf.multiline)
      @textInput.setText(@conf.search)
      @regexSearch.setText(@conf.search)
      @regexReplace.setText(@conf.replace)
      @title = PROGTITLE
      setCaption(@title)
      # load any prior data file
      load(@conf.dataFile) if @conf.dataFile.size > 0
   end
   # "choose" selects a data file
   def choose()
      fd = Qt::FileDialog.new
      fn = fd.getOpenFileName(@conf.dataPath, nil, self)
      if !fn.nil?
         load( fn )
         # preserve user selected path
         @conf.dataFile = fn
         @conf.dataPath = File.dirname(fn)
         setCaption( @title + ": " + fn )
      else
         statusBar().message( tr("Loading aborted"), 5000 )
      end
   end
   # "load" reads a chosen data file
   def load( filename )
      f = Qt::File.new( filename )
      if !f.open( Qt::IO_ReadOnly )
         return
      end
      ts = Qt::TextStream.new( f )
      @textInput.setText( ts.read() )
      @textInput.setModified( false )
      statusBar().message( tr("Loaded document %s" % filename), 5000 )
   end
   # user action for "choose" (select a file)
   def fileReadAction_activated(*k)
      choose()
   end
   # user action for about dialog
   def fileAbout_activated(*k)
      ad = AboutDialog.new
      ad.show
   end
   # carry out regular expression processing
   def regexExecute(*k)
      # get data into local variables
      data = @textInput.text()
      search = @regexSearch.text()
      replace = @regexReplace.text()
      # convert newline and tab escapes
      # in replace string
      replace.gsub!(/\\n/,"\n")
      replace.gsub!(/\\t/,"\t")
      # process options
      options = 0
      options |= Regexp::IGNORECASE unless @caseCheckBox.isChecked()
      options |= Regexp::EXTENDED if @extendedCheckBox.isChecked()
      options |= Regexp::MULTILINE if @multilineCheckBox.isChecked()
      # create regular expression
      rs = Regexp.new(search,options)
      # perform search & replace
      if (@globalCheckBox.isChecked())
         data.gsub!(rs,replace)
      else
         data.sub!(rs,replace)
      end
      # assign result data
      @textOutput.setText(data)
   end
   # user actions for regular expression processing
   def regexReplace_returnPressed(*k)
      regexExecute()
   end
   def regexSearch_returnPressed(*k)
      regexExecute()
   end
   # override handling of "close" signal from both
   # menu item and main frame
   def close(x)
      # set configuration from checkbox values
      @conf.global = @globalCheckBox.isChecked()
      @conf.case = @caseCheckBox.isChecked()
      @conf.extended = @extendedCheckBox.isChecked()
      @conf.multiline = @multilineCheckBox.isChecked()
      @conf.search = @regexSearch.text()
      @conf.replace = @regexReplace.text()
      # write configuration file
      @confHandler.writeConfig()
      @app.exit(0)
   end
   # user action for "close"
   def exitAction_activated(*k)
      close(false)
   end
end
# launch Qt application
if $0 == __FILE__
   app = Qt::Application.new(ARGV)
   w = RegExpTester.new(app)
   app.mainWidget = w
   w.show
   app.exec
end

http://www.arachnoid.com/ruby/RubyGUIProject/index.html (Second Program)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#628 Le 29/06/2011, à 09:00

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Heu, je suis au boulot, pas le temps de jouer à ça ^^. On verra plus tard si j'ai le temps, mais j'aurais bien aimé un programme plus trivial, histoire de pas y passer une semaine ^^.

Dernière modification par tshirtman (Le 29/06/2011, à 09:00)

Hors ligne

#629 Le 29/06/2011, à 09:32

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

Euhh, ben j'ai ça : http://rubygame.org/wiki/Starting_simple (RubyGame nécessaire, mais ça semble pas difficile à installer, surtout avec gem). J'ai pas mieux.. tongue


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#630 Le 29/06/2011, à 10:14

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Hum, je pense que le code python pour le dernier code là (les sprites) serait sensiblement de la même longueure, en utilisant pygame…

bon, finalement je l'ai codé…
http://paste.pocoo.org/show/423421/

faudrait virer les commentaires du code ruby pour comparer, c'est sans doute un peu plus court (le ruby), mais c'est un peu spé, sans les commentaires…

bon, bah, j'ai viré les comms dans la version ruby

gaby@heartsking:~$ wc meanie.py meanie.rb 
  48  127 1214 meanie.py
  56  141 1274 meanie.rb

les autres, je m'attends à un résultat du même ordre, si je les faits…

edit: code un peu meilleurs (seuls erreurs signalés par pylint: "missing docstring")
http://paste.pocoo.org/show/423471/

  48  126 1250 meanie.py

challenge accepted

Dernière modification par tshirtman (Le 29/06/2011, à 11:12)

Hors ligne

#631 Le 29/06/2011, à 15:54

Pylades

Re : /* Topic des codeurs couche-tard [5] */

tshirtman a écrit :
Πυλάδης a écrit :
tshirtman a écrit :

C'est une implémentation de l'opérateur ternaire, que ce soit "?" et ":" ou "if" et "else", c'est la même chose…

Ouais mais c’est trop verbeux, justement…

Pond moi n'importe quel programme complet, dans n'importe quel langage, et je te montre ma version python, on verra qui est le plus verbeux tongue (documenté, que j'ai pas a me prendre la tête à comprendre ce que ça fait si c'est un langage abscon).

Je me suis mal exprimé. Python n’est pas trop verbeux en général (loin de là), mais c’est juste qu’avoir des mots là où des symboles feraient l’affaire, j’aime pas. Et tout particulièrement pour les cas où il y a des symboles quasi universels.


ArkSeth a écrit :

Mon .vimrc perso (les six premières lignes viennent d'un excellent prof de mon ancien IUT, le reste vient de tshirtman)

if &t_Co > 1
    syntax enable
endif
syntax on
set background=dark

Ça ne sert à d’activer la coloration syntaxique deux fois… Et le test est bien inutile si de toutes façons la coloration syntaxique est activée ensuite (de toutes façons, ce n’est pas à l’utilisateur de vérifier le nombre de couleurs disponibles).

On préférera ceci :

if has("syntax")
  syntax on
  set background=dark
endif
ArkSeth a écrit :
set mouse=a

On préférera ceci :

if has("mouse")
  set mouse=a
endif
ArkSeth a écrit :
set hls
set incsearch

On préférera ceci :

if has("extra_search")
  set incsearch
  set hlsearch
endif

(Oui, les tests sur les features, c’est bien. tongue)


ArkSeth a écrit :
set ai

Généralement, on utilise la détection du type de fichier pour charger les règles d’indentation propres à chaque type de fichier, et au passage pour activer d’éventuels plugins.

if has("autocmd")
  filetype plugin indent on
endif

On peut éventuellement se rabattre sur autoindent si Vim a été compilé sans le support des autocommandes :

if has("autocmd")
  filetype plugin indent on
else
  set autoindent
endif

(Oui, je suis un putain de pinailleur. tongue)

Dernière modification par Πυλάδης (Le 29/06/2011, à 15:57)


“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

#632 Le 29/06/2011, à 16:26

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Πυλάδης a écrit :
tshirtman a écrit :
Πυλάδης a écrit :

Ouais mais c’est trop verbeux, justement…

Pond moi n'importe quel programme complet, dans n'importe quel langage, et je te montre ma version python, on verra qui est le plus verbeux tongue (documenté, que j'ai pas a me prendre la tête à comprendre ce que ça fait si c'est un langage abscon).

Je me suis mal exprimé. Python n’est pas trop verbeux en général (loin de là), mais c’est juste qu’avoir des mots là où des symboles feraient l’affaire, j’aime pas. Et tout particulièrement pour les cas où il y a des symboles quasi universels.

Ben la notation (X ? A : B) n'a pas trop de sens en fait, il faut vraiment la connaitre... A if X else B est bien plus claire.

(Oui, je suis un putain de pinailleur. tongue)

passe sur #vim@freenode.net de temps en temps \o/

(bon, présentement j'y suis plus, mais quand j'ai un peu de temps, j'y fait un tour smile)

Hors ligne

#633 Le 29/06/2011, à 16:36

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Pourquoi ? Ça cause de config de Vim ? tongue


Sinon, je crois qu’il faut aussi que tu fusionnes les points de milkyway… ^^


“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

#634 Le 29/06/2011, à 16:38

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Oui, et un peu tous les trucs sympa qu'on peut faire avec, de temps en temps ça flamme tabs VS spaces, et on a eu un gros débat sur <CR> en fin de dernière ligne de fichier (que mettent les éditeurs unix, et pas les windows)… ce genre de choses smile

Ah oui, pour milky, je vais aller voir le nouveau pseudo qu'il avait demandé…

Hors ligne

#635 Le 29/06/2011, à 16:43

Pylades

Re : /* Topic des codeurs couche-tard [5] */

(spas <CR>, c’est un <LF>, sous Unix…)

Sinon je trouve que c’est un point de détail. Moi les mets parce que j’aime bien (et qu’il me semble avoir lu que quelques complilos en avaient besoin dans un passé lointain), mais ça ne me choque pas de ne pas en voir…

D’ailleurs je n’en ai pas à la fin mon .Xresources ; ce n’est même pas systématique…


“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

#636 Le 29/06/2011, à 17:02

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

Ben la norme C le demande, et faire un cat de deux fichiers pose problème s'il n'y en a pas à la fin du premier.

mais les éditeurs windows considèrent <CR> comme un sépareteur de lignes, et non comme un charactère de fin de ligne, donc quand il y en a un en fin de fichier, ils affichent une ligne supplémentaire en fin de fichier, qui n'existe pas.

(oui, c'est peut être <LF> wink osef pour ce cas précis, c'est la combinaison des deux ou ou l'un des deux, ça change rien)

(tu n'a pas besoin d'en mettre, si ton éditeur est intelligent, il en met un, sinon non, que tu insère une ligne vide ou pas).

Dernière modification par tshirtman (Le 29/06/2011, à 17:03)

Hors ligne

#637 Le 29/06/2011, à 17:11

Pylades

Re : /* Topic des codeurs couche-tard [5] */

J’avais codé un truc qui ressemblait à une version minimaliste de cat et je n’ai pas souvenir l’existence de ce caractère… Faudrait que je vérifie un de ces jours…


J’ai vérifié, t’as raison en fait. tongue

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char* getstr(FILE* fd)
{
    char* buf = malloc(1);
    if (buf)
    {
        buf[0] = '\0';
        for (;;)
        {
            char* tmp = malloc(sizeof *tmp * 128);
            if (!fgets(tmp, 128, fd))
                return buf;
            else
            {
                char* buftmp = realloc(buf, strlen(buf)+strlen(tmp)+1);
                if (buftmp)
                {
                    buf = buftmp;
                    strcat(buf, tmp);
                    if (buf[strlen(buf)-1] == '\n')
                        return buf;
                }
                else
                    return NULL;
            }
        }
    }
    return NULL;
}

int main(int argc, char** argv)
{
    int i;
    for (i=1; i < argc; i++)
    {
        FILE* fd = fopen(argv[i], "r");
        if (fd)
        {
            size_t j;
            char* string;
            string = getstr(fd);
            while (strlen(string))
            {
                if (!string)
                    return 1;
                fputs(string, stdout);
                for (j=0; j < strlen(string); j++)
                    fprintf(stderr, "%d ", string[j]);
                free(string);
                putc('\n', stderr);
                string = getstr(fd);
            }
            free(string);
        }
        fclose(fd);
    }
    return 0;
}

(Code vite fait, mal fait.)

Dernière modification par Πυλάδης (Le 29/06/2011, à 18:04)


“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

#638 Le 29/06/2011, à 19:52

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

@Πυλάδης : à noter que pour les buffers de ce genre (copie/lecture de fichier), au lieu d'utiliser une taille arbitraire (ici 128) tu peux utiliser la constante BUFSIZ (définie dans stdio.h).

http://www.gnu.org/s/libc/manual/html_node/Controlling-Buffering.html#Controlling-Buffering a écrit :

The value of this macro is an integer constant expression that is good to use for the size argument to setvbuf. This value is guaranteed to be at least 256.

The value of BUFSIZ is chosen on each system so as to make stream I/O efficient. So it is a good idea to use BUFSIZ as the size for the buffer when you call setvbuf.

Actually, you can get an even better value to use for the buffer size by means of the fstat system call: it is found in the st_blksize field of the file attributes. See Attribute Meanings.

Sometimes people also use BUFSIZ as the allocation size of buffers used for related purposes, such as strings used to receive a line of input with fgets (see Character Input). There is no particular reason to use BUFSIZ for this instead of any other integer, except that it might lead to doing I/O in chunks of an efficient size.

Hors ligne

#639 Le 29/06/2011, à 20:30

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Merci, je ne connaissait pas.

(Pis t’aurais aussi pu dire qu’il manquait des free. tongue)

Dernière modification par Πυλάδης (Le 29/06/2011, à 20:38)


“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

#640 Le 29/06/2011, à 21:46

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Bha comme tu as dit « (Code vite fait, mal fait.) », j'ai pas vraiment lu le code en fait (juste la constante magique 128 direct dans le code qui m'a sauté aux yeux et du coup j'ai repensé à cette histoire de BUFSIZ).

Dernière modification par grim7reaper (Le 29/06/2011, à 22:29)

Hors ligne

#641 Le 29/06/2011, à 22:05

Kanor

Re : /* Topic des codeurs couche-tard [5] */

pour vim un petit article sur comment je gére les plugins
http://kanorblog.wordpress.com/2011/06/ … -pour-vim/

Hors ligne

#642 Le 29/06/2011, à 22:29

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

@Rolinh : comme ce soir je m'ennuyait (spa vrai en plus : j'ai une tétrachiée de trucs à faire, mais malheureusement mon ordonnanceur interne n'est pas basé sur l'utilité des tâches >_<") j'ai téléchargé Lincopier et je l'ai compilé avec ma ligne de compil' maison.
Après filtrage des warnings dus à GTK et au C89 (vu que tu codes en C99), il en ressort ça :

main.c: In function ‘main’:
main.c:69:5: attention : integer constant is too large for ‘long’ type [-Wlong-long]
utils.c: In function ‘get_dir_size’:
utils.c:114:4: attention : entier négatif implicitement converti en un type non signé [-Wsign-conversion]
utils.c:142:6: attention : entier négatif implicitement converti en un type non signé [-Wsign-conversion]
utils.c:146:20: attention : conversion to ‘uintmax_t’ from ‘__off_t’ may change the sign of the result [-Wsign-conversion]
utils.c:155:4: attention : entier négatif implicitement converti en un type non signé [-Wsign-conversion]
copy.c: In function ‘treat_queue’:
copy.c:142:22: attention : conversion to ‘off_t’ from ‘uintmax_t’ may alter its value [-Wconversion]
copy.c:151:22: attention : conversion to ‘off_t’ from ‘uintmax_t’ may alter its value [-Wconversion]
copy.c: In function ‘copy_dir’:
copy.c:266:27: attention : conversion to ‘char’ from ‘int’ may alter its value [-Wconversion]
copy.c:269:18: attention : conversion to ‘char’ from ‘int’ may alter its value [-Wconversion]
copy.c: In function ‘copy’:
copy.c:425:26: attention : conversion to ‘char’ from ‘int’ may alter its value [-Wconversion]
copy.c:428:17: attention : conversion to ‘char’ from ‘int’ may alter its value [-Wconversion]
copy.c:472:30: attention : conversion to ‘size_t’ from ‘__off_t’ may change the sign of the result [-Wsign-conversion]
copy.c:480:31: attention : conversion to ‘size_t’ from ‘__off_t’ may change the sign of the result [-Wsign-conversion]
copy.c:487:42: attention : conversion to ‘size_t’ from ‘__off_t’ may change the sign of the result [-Wsign-conversion]
copy.c:496:30: attention : conversion to ‘size_t’ from ‘__off_t’ may change the sign of the result [-Wsign-conversion]
gui.c: In function ‘on_quit_activated’:
gui.c:37:30: attention : unused parameter ‘object’ [-Wunused-parameter]
gui.c:37:47: attention : unused parameter ‘user_data’ [-Wunused-parameter]
gui.c: In function ‘on_add_clicked’:
gui.c:91:27: attention : unused parameter ‘object’ [-Wunused-parameter]
gui.c:91:44: attention : unused parameter ‘user_data’ [-Wunused-parameter]
gui.c: In function ‘on_add_folder_clicked’:
gui.c:125:34: attention : unused parameter ‘object’ [-Wunused-parameter]
gui.c:125:51: attention : unused parameter ‘user_data’ [-Wunused-parameter]
gui.c: In function ‘on_apply_clicked’:
gui.c:146:29: attention : unused parameter ‘object’ [-Wunused-parameter]
gui.c:146:46: attention : unused parameter ‘user_data’ [-Wunused-parameter]
gui.c: In function ‘on_about’:
gui.c:153:21: attention : unused parameter ‘widget’ [-Wunused-parameter]
gui.c:153:38: attention : unused parameter ‘data’ [-Wunused-parameter]

Le premier me semble important mais j'ai pas regardé le code donc à toi de vérifier si ça risque de poser problème.
Pour les problèmes de conversion, un cast explicite devrait faire disparaître les warnings (à toi de voir si ces conversions sont safe, encore une fois j'ai pas lu le code en détail wink).
Pour les warnings « unused parameter », suffit d'ajouter ça

(void)object; 
(void)user_data;

dans tes fonctions pour qu'ils disparaissent.


Edit : tiens, dans la foulée jt'ai fait un patch pour les unused.

diff -r dd162cb4d919 src/gui.c
--- a/src/gui.c    Thu Jun 23 21:34:11 2011 +0200
+++ b/src/gui.c    Wed Jun 29 23:25:35 2011 +0200
@@ -36,6 +36,10 @@
 void
 on_quit_activated(GtkObject *object, gpointer user_data)
 {
+   // Avoids warnings from "-Wunused-parameter".
+   (void)object;
+   (void)user_data;
+
    gtk_main_quit ();
 }
 
@@ -95,6 +99,10 @@
     struct stat boeuf; /* mooo "french touch" */
     uintmax_t size;
 
+    // Avoids warnings from "-Wunused-parameter".
+    (void)object;
+    (void)user_data;
+
     from    = on_file_choose();
     to    = on_folder_choose();
 
@@ -128,6 +136,10 @@
     char *from, *to;
     uintmax_t size;
 
+    // Avoids warnings from "-Wunused-parameter".
+    (void)object;
+    (void)user_data;
+
     from    = on_folder_choose();
     to    = on_folder_choose();
 
@@ -145,6 +157,10 @@
 void
 on_apply_clicked(GtkObject *object, gpointer user_data)
 {
+    // Avoids warnings from "-Wunused-parameter".
+    (void)object;
+    (void)user_data;
+
     treat_queue();
 }
 
@@ -175,6 +191,10 @@
             "Kevin Gillieron <kevin.gillieron@gw-computing.net\n"
             "Robin Hahling <robin.hahling@gw-computing.net\n";
 
+    // Avoids warnings from "-Wunused-parameter".
+    (void)object;
+    (void)user_data;
+
     gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), "LinCopier");
     gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), "alpha-2");
     gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),

Re‑édit : ha tiens, je viens de voir que tu indentes avec des tabs… (c'est pour ça que ça rends bizarre dans le diff).
Bon bah je te laisserais remédier à cela ^^.

Dernière modification par grim7reaper (Le 29/06/2011, à 22:36)

Hors ligne

#643 Le 29/06/2011, à 22:39

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [5] */

Æ

Dernière modification par na kraïou (Le 29/06/2011, à 23:00)


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#644 Le 29/06/2011, à 22:51

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Sinon, je préfère utiliser l’attribut unused de GCC pour ce genre de chose… tongue


(Mon Dieu ! /me est en train de se changer en Gnueux… yikes)


“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

#645 Le 29/06/2011, à 23:08

cm-t

Re : /* Topic des codeurs couche-tard [5] */

'Nuit && Spin;


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#646 Le 30/06/2011, à 00:50

samυncle

Re : /* Topic des codeurs couche-tard [5] */

.


Hello world

Hors ligne

#647 Le 30/06/2011, à 02:05

Кຼزດ

Re : /* Topic des codeurs couche-tard [5] */


(et je trouve sale d’utiliser les paramètres une fois pour éviter les warnings roll, __UNUSED__ ftw)

Dernière modification par Кຼزດ (Le 30/06/2011, à 02:06)


dou

Hors ligne

#648 Le 30/06/2011, à 02:12

Pylades

Re : /* Topic des codeurs couche-tard [5] */

T’façons, le seul paramètre qui devrait être unused c’est argc (où éventuellement des paramètres d’handler ou d’autre types de fonctions imposés par les API), non ?


“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

#649 Le 30/06/2011, à 05:21

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Hello World!



Кຼزດ a écrit :


(et je trouve sale d’utiliser les paramètres une fois pour éviter les warnings roll, __UNUSED__ ftw)

roll, c'est sûr que ta solution non portable est propre…
Et puis c'est pas si moche que ça, vu qu'il met déjà (comme BSD) des (void) partout (pour montrer qu'il ignore consciemment le retour de certaines fonctions) ça ne jure pas avec le reste du code.

Sinon, quand t'auras une vraie solution propre ET portable tu pourras repasser et être constructif, en attendant « stop bullshit, thanks ».



Πυλάδης a écrit :

T’façons, le seul paramètre qui devrait être unused c’est argc (où éventuellement des paramètres d’handler ou d’autre types de fonctions imposés par les API), non ?

Rien ne devrais être unused, les extensions GNU ça pue la mort à 20 lieues à la ronde…

Mais sinon oui, les seuls paramètres à ignorer consciemment sont ceux que l'on t'impose. Tu peux également être amené à ignorer des paramètres pour des raisons de retro‑compatibilité aussi.

Dernière modification par grim7reaper (Le 30/06/2011, à 05:23)

Hors ligne

#650 Le 30/06/2011, à 06:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [5] */

Scores totaux, depuis le début :

1) 3633    nesthib
2) 3221    samuncle
3) 3109    Πυλάδης
4) 2327    Кຼزດ
5) 1795    cm-t
6) 1731+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 1380    na kraïou
8) 866    helly
9) 862    \\Ouranos//
10) 659    gnuuat
11) 647    tshirtman
12) 565    Lagierl
13) 440    Rolinh
14) 418    nathéo
15) 385    The Uploader
16) 271    Kanor
17) 202    :!pakman
18) 196    Askelon
19) 121    ǤƦƯƝƬ
20) 99    kamui57
21) 93    petifrancais
22) 78    edge_one
22) 78    pierguiard
24) 70    gulp
25) 45    Le Rouge
26) 42    sakul
27) 37    ilagas
28) 36    xapantu
29) 30    keny
30) 26    gustare
30) 26    d10g3n
32) 25    GentooUser
32) 25    Morgiver
34) 24    ไ୦บเઢ'
34) 24    Steap
36) 20    CROWD
37) 18    Ph3nix_
38) 16    kouskous
39) 15    timsy
40) 12    stratoboy
40) 12    sailing
42) 11    alexises
42) 11    Crocoii
44) 10    Toineo
44) 10    NutMotion
44) 10    pseudovingtcinqcaracteres
44) 10    pfriedZ
44) 10    CasseTaTele
44) 10    Zeibux
44) 10    THS`
51) 8    Mornagest
52) 7    Vista
53) 6    ubuntlin
53) 6    asma.geek
55) 5    tendances-tdct
55) 5    kinouchou
57) 4    danychou56
57) 4    Neros
57) 4    Biaise
57) 4    totoflute
57) 4    pinballyoda ㋛
57) 4    NLS le pingouin
57) 4    ceric
57) 4    Dice-Man
57) 4    Pylade
66) 3    Revan26914
66) 3    raspouillas
66) 3    sweetly
69) 2    SoJaS
70) 1    geenux
70) 1    ArzhurBZH

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne