#626 Le 29/06/2011, à 07:35
- The Uploader
Re : /* Topic des codeurs couche-tard [5] */
Hello World!
The Uploader a écrit :Le langage D est à moi! A moiiiiiiiiiiiii!! \o/
*Adieu Java et C--*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] */
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 (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..
- 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
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] */
Πυλάδης 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 (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.
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
set mouse=a
On préférera ceci :
if has("mouse")
set mouse=a
endif
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. )
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. )
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] */
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 (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. )
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 )
Hors ligne
#633 Le 29/06/2011, à 16:36
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Pourquoi ? Ça cause de config de Vim ?
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
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> 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.
#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).
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. )
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 ).
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…
(Mon Dieu ! /me est en train de se changer en Gnueux… )
“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 , __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!
…
(et je trouve sale d’utiliser les paramètres une fois pour éviter les warnings , __UNUSED__ ftw)
, 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 ».
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
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