Re: Undo done d'oh? metricsview.c
Dave Crossland <[email protected]> Sun, 22 Mar 2015 02:05:48 -0400
| Newsgroups | gmane.comp.fonts.fontforge.devel |
|---|---|
| Message-ID | <CAEozd0xoJxGqAU-FXX1ckPrApZyTAtdNDRvVuFrQoN-z8eeNxw@mail.gmail.com> |
Amazing job as always Thomas :) On 21 Mar 2015 20:25, "Thomas Shinnick" <[email protected]> wrote: > No, he's not to blame a bit, nor anyone present. This really looks like > confusion from 2004 timeframe (or is that the date when imported into > SF/GH? Ah, code is wrong 2003-06-11 in originals at SF) > > SCPreserveVWidth() saves vwidth into *u.state.width* > <https://github.com/fontforge/fontforge/blame/master/fontforge/cvundoes.c#L871> > setting undo type ut_vwidth. Mmm, and so does SCPreserveWidth() except > using type > ut_width. Mmm, but in splinefont.h the definition is > union { > struct { > int16 width, vwidth; > . . . . . > } state; > If you are using the '*state*' section (undo types like ut_state) then it > should be u.state.width and u.state.*vwidth* (and these are used > correctly this way elsewhere). > > But then in SCUndoAct() - the implementation of undoing - in the cases > for ut_width and ut_vwidth > <https://github.com/fontforge/fontforge/blame/master/fontforge/cvundoes.c#L911> > it accesses *u.width* , not u.state.width. And u.width looks to be the > correct usage. > > So, like, er, umm, this particular undo/redo usage has been broken since > the beginning? And these routines are called from 15 places, so there's > likely some breakage. (Unlike routines CVPreserveWidth() / > CVPreserveVWidth() *which are never called*, but which *are* coded > correctly... >.<) > > So, technical debt and untested code whinging, y'know? Suppose I ought to > debug / prove / PR ... > > On Fri, Mar 20, 2015 at 11:59 PM, Dave Crossland <[email protected]> wrote: > >> Hi >> >> I think Ben Martin (@monkeyiq) worked on the undo system, as part of >> collab stuff >> > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > fontforge-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/fontforge-devel > http://fontforge.10959.n7.nabble.com/Developer-f3.html > > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ fontforge-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fontforge-devel http://fontforge.10959.n7.nabble.com/Developer-f3.html