On Tue, 2013-05-07 at 11:46 +0200, Éloi Rivard wrote: > I made some refactoring on keyboard.c and splited it. XML parts are > now in keymapio.c. Let me know if it is mergeable. I can try later. > > Must all sources be direct children of src or subdirectories are ok to > you ? I think about isolating generated c files. yes, for the generated c files it would be good. I am not keen on it for the regular code that goes into the binary that I edit (you need an IDE to cope with the sources being spread around easily I think).
Richard > > > > > 2013/5/6 Richard Shann <[email protected]> > On Mon, 2013-05-06 at 17:54 +0200, Éloi Rivard wrote: > > I idented src and utils directories with indent -nut -l500, > to use > > tabs instead of spaces so the code displays the same on > every editors, > > and to not break lines after 80 columns. > > > > This is on the 'indent' branch. Let me know if it is ok to > you > > > I have built this version and it seems to be running just fine > - of > course we have no regression tests, but I trust GNU indent. > One thing that surprised me is the coding style is not what I > remembered > (about 15 years ago I worked in a company that specified GNU > coding > style for newly-written code) and my memory was that it > involved opening > braces on the same line as the function name, ie > > void myfun (void) { > > > } > > whereas what you have looks more like the K&R that I first got > to know, > ie > int myfun () > { > > > } > > but so long as this is current GNU coding standards I am happy > to go > with it. > > Richard > > > > > > > > > > 2013/5/6 Éloi Rivard <[email protected]> > > That's what I mean :) > > > > > > > > 2013/5/6 Richard Shann <[email protected]> > > On Mon, 2013-05-06 at 11:27 +0200, Éloi > Rivard wrote: > > > Indent is a GNU program that let you > indent your > > code the way you > > > want: http://www.gnu.org/software/indent/ > > > > > > I think most of linux distributions have a > package > > for this. > > > > Ah, yes, I have it now, a separate package > called > > indent ( :) ) on > > Debian. > > > > > > > > This let you chose the indentation policy > you want > > (number of spaces, > > > use of tabulations or not, braces at end > of lines or > > at beginning > > > etc.) > > > > > > The default style of indent is "GNU" that > is > > recommended for GNU > > > projects, what do you think of this one ? > > > > > > Yes, it was never my favorite, but I value > > standardization above > > personal preference. > > > > > > > > > > Maybe automatic indentation can not be a > good idea > > in some case > > > indeed, though indent is pretty safe, > because > > sometimes you just want > > > a particular alignment, for instance with > arrays. > > > > > > Perhaps a code indent commit would be a > good idea ? > > > > > > Do you mean a separate commit that does > nothing but > > correct indentation. > > That would be very good indeed, it is really > bad to > > mix code changes > > with indentation changes as I have been > doing (but > > then, no-one else has > > been caring much ...). > > > > Richard > > > > > > > > > > > > > > > > > > 2013/5/6 Richard Shann > <[email protected]> > > > Indentation is often terrible in > Denemo - I > > don't seem to have > > > any > > > indent command - this hook seems > to refer to > > one, what would > > > that be? > > > I am not sure that automatic > re-indenting on > > commit will be > > > good - > > > anything altering the programmer's > text is > > controversial, but > > > I would be > > > very happy to adopt a convention > given a > > tool to enable it. I > > > have been > > > fixing indentation myself by hand > during the > > past year as I > > > have edited > > > code, despite the annoyance that > doing it > > while making code > > > changes > > > makes the commit much harder to > read. So a > > global tidy up > > > followed by > > > testing (it should be a *very* > trusted > > indent tool!) would be > > > good I > > > think. > > > > > > Richard > > > > > > On Sun, 2013-05-05 at 20:50 +0200, > Éloi > > Rivard wrote: > > > > Here is an interesting indent > pre-commit > > hook > > > > > https://gist.github.com/eroullit/1250603 > > > > > > > > > > > > > > > > 2013/5/5 Éloi Rivard > <[email protected]> > > > > > > > > > > > > > > > > 2013/5/5 Richard Shann > > <[email protected]> > > > > On Sun, > 2013-05-05 at > > 17:09 +0200, Éloi > > > Rivard wrote: > > > > > > > > > > > > > > > > > > > > 2013/5/5 > Richard Shann > > > <[email protected]> > > > > > On > Sun, > > 2013-05-05 at 13:41 +0200, > > > Éloi > > > > Rivard wrote: > > > > > > > Let's imagine > > a user wants to > > > create a > > > > scheme command > and > > > > > add it > as a > > > > > > > denemo default > > command. What > > > process > > > > should be > followed ? > > > > > > > > > > > > > > > 1)Use > > View->Scheme to get an > > > editor. Type in > > > > the scheme for > > > > > the > new > > > > > > command. > > > > > > 2)Decide on a > > position in the menu > > > system > > > > for the new > command. > > > > > Right > > > > > Click > on the > > item above the > > > desired > > > > position, and > choose Save > > > > > As New > > > > > Menu > Item. > > > > > 3)Give > a name > > for the command > > > > > 4)Give > a Label > > for the menu item > > > that will > > > > activate it > > > > > > 5)(optionally) > > give a submenu name > > > > > 6)Save > with > > default commands. > > > > > > > > > > > > I am > not sure > > I understand roles > > > of > > > > tools : > extract_all.sh, > > > > > > > > > > this > creates > > files that the > > > translation tool > > > > xgettext can use > > > > > > > > generate_sources > > > > > > > generate_sources.c generates > > > (ancient) > > > > built-in > commands > > > > > > and > the > > sources it generates, > > > > > > > > > > > > commands.c, > > > > > > > > > > this > exists for > > translatability, > > > but is is > > > > executed at > startup > > > > > making > > > > > the > original > > mechanism of reading > > > > Default.commands > generally > > > > > > redundant > > > > > > (except where > > new commands have > > > been created > > > > since the binary > > > > > was > > > > > > generated) > > > > > > > > > > > > > > > Why is it > needed to > > generate some c dummy > > > files for > > > > translation > since > > > > > scheme is > supported by > > xgettext ? > > > > > > > > > > > > there are no c > dummy > > files, commands.c is > > > executed, it > > > > is not scheme > > > > that is getting > > translatable it is menu > > > labels and > > > > tooltips. > > > > > > > > > > > > > > > > > > > > > > > > > denemoui.xml, > > > > > this > is > > hand-written, it defines > > > where the > > > > built-in > commands > > > > > appear > in > > > > > the > menu system > > > > > > > > GENERATE_SOURCE_CODE define > > > etc. > > > > > This > is used to > > create a version > > > of Denemo > > > > which generates > the > > > > > source > > > > > code > commands.c, > > that is you make > > > Denemo > > > > with that > > > > > > preprocessor > > flag > > > > > > defined, run it > > and it loads all > > > the > > > > commands (from > > > > > > > Default.commands) > > > > > and > generates > > new source code for > > > Denemo > > > > that contains > > > > > > translatable > > > > > > strings for all > > the commands. You > > > then > > > > re-compile > Denemo > > > > > > without that > > > > > flag > and it uses > > the new source > > > code; the > > > > program's > behavior > > > > > has > not in > > > > > fact > been > > altered, but it has > > > labels and > > > > tooltips for all > > > > > > commands > > > > > > translatable. > > > > > > > > > > > > > > > Why not create > another > > program dedicated > > > to this > > > > task and let > denemo > > > > > behavior more > regular ? > > > > > > > > > > > > yes, please > do :) You just > > have to parse > > > > Default.commands > and > > generate > > > > C-code from it. > > > > > > > > > > > > > > > > See attached patch. > > utils/generate_commands creates > > > the very > > > > same code than launching > denemo > > with > > > -DGENERATE_SOURCE_CODE > > > > I indented some code in > keyboard.c > > so some line have > > > been > > > > changed but the behavior > is the > > same. I also fixed > > > some unused > > > > variable warnings. > > > > > > > > What about some indent > commit > > hook ? > > > > > > > > > > > > > > > > > > > > > > > > and > some > > other I probably miss. > > > > > > > > > > It > could be. I > > seem to remember > > > you > > > > suggested the > word > > > > > > Pharaonic to > > > > > > describe what > > was needed to make > > > Denemo > > > > translatable :) > > > > > > > > > > > > > > > > > It > should be > > understandable by > > > reading and > > > > hacking, but as > > > > > the > process > > > > > > > seems quite > > complicated, I think > > > > developers > comments would > > > > > be > helpful. > > > > > > > > > > > > > > > It is > very > > complicated - In the > > > latest > > > > release I missed > the > > > > > fact > that > > > > > after > running > > extract_all.sh there > > > are > > > > generally > further text > > > > > files > > > > > > generated that > > need a git commit > > > otherwise > > > > the make dist > step > > > > > fails > to > > > > > create > the po > > stuff. Those text > > > files are in > > > > > > > actions/commandscripts and > > > > > exist > purely to > > allow xgettext to > > > see the > > > > (_ ) procedures > - > > > > > the > > > > > > translatable > > strings - in the > > > scheme of the > > > > scripted > commands. > > > > > (By > > > > > > contrast, the > > commands.c is > > > generated to > > > > allow xgettext > to see > > > > > the > > > > > labels > of the > > commands and their > > > tooltips). > > > > > > > > > > There > are a lot > > of steps needed to > > > create a > > > > release and I am > > > > > very > happy > > > > > to > rehearse them > > here - it > > > improves the > > > > chance of me > getting > > > > > it > right > > > > > next > time first > > time. > > > > > > > > > > > > > > > > > > > > Something that > may be > > discouraging for a > > > beginner at > > > > the current > > > > > state, is that > when you > > edit some code, > > > you can't > > > > just compile & > see > > > > > since there > seem to be > > some intermediate > > > generation > > > > steps. Maybe > > > > > including > those in the > > build system would > > > make > > > > things easier. > > > > > > > > > > > > which code? The > > intermediate steps are just > > > for > > > > translation. > > > > > > > > > > > > If you want for instance > add some > > metadata to > > > actions/menu xml > > > > files, you may have to > update > > translation steps too. > > > > > > > > > > > > (Well, there is > that > > ancient built in stuff, > > > which we > > > > really don't > want > > > > people expanding > - new > > stuff should be > > > scheme > > > > generally. > However, as it > > > > is, it has > advantages for > > re-engineering the > > > built-in > > > > stuff. There is > an > > > > ancient > classification of > > commands in there > > > which may > > > > come in useful > > > > some day, and it > does > > generate the commands > > > for notes > > > > A-G and > durations > > > > 0-7 > programatically, which > > saves having to > > > edit > > > > multiple times > if we > > > > alter something > about how > > they appear in the > > > program. > > > > But I wouldn't > > > > seriously defend > that > > stuff, if someone were > > > to write > > > > it cleanly from > > > > scratch). > > > > > > > > Richard > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Éloi Rivard - > [email protected] > > > > > > > > « On perd plus à être > indécis qu'à > > se tromper. » > > > > > > > > > > > > > > > > > > > > -- > > > > Éloi Rivard - [email protected] > > > > > > > > « On perd plus à être indécis > qu'à se > > tromper. » > > > > > > > > > > > > > > > > > > > > > > -- > > > Éloi Rivard - [email protected] > > > > > > « On perd plus à être indécis qu'à se > tromper. » > > > > > > > > > > > > > > > > > -- > > Éloi Rivard - [email protected] > > > > « On perd plus à être indécis qu'à se tromper. » > > > > > > _______________________________________________ > > Denemo-devel mailing list > > [email protected] > > https://lists.gnu.org/mailman/listinfo/denemo-devel > > > > > > > > > > -- > > Éloi Rivard - [email protected] > > > > « On perd plus à être indécis qu'à se tromper. » > > > > > > > > > -- > Éloi Rivard - [email protected] > > « On perd plus à être indécis qu'à se tromper. » > _______________________________________________ Denemo-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/denemo-devel
