Christian Stimming <stimm...@tuhh.de> writes: > Even worse, the semantics of those functions are also vastly > different: Some of the *Clone functions are intended to create a > duplicate of the source object but in a different QofBook, including > setting kvp values with the GUID of the old in the new object and vice > versa, i.e. gncCloneInvoice(). Not quite what I would call a "clone". > OTOH xaccTransClone() and xaccSplitClone() are "normal" deep copy > constructors, but xaccCloneAccount() is not, and > xaccCloneAccountSimple() also is not. Gee.
We should make sure that we're consistent. If xaccFooClone() does one thing and xaccBarClone() does a different thing it could lead to confusion. We should rename and standardize on that Clone(), Copy(), Duplicate(), etc do/mean. > In my case, the use case for the function is a button "Duplicate this > invoice", so the invoice and all its content should be duplicated > inside the same QofBook and will subsequently be edited so that it can > be distinguished from the original invoice. This requires a normal > copy constructor (deep copy). > > If the normal constructor function is called gncFooCreate, a standard > copy constructor should be called gncFooCopy. All other non-standard > functions should be named significantly different, like > gncFooCopyIntoDifferentBook (maybe not) or gncFooOtherBookCopy (that's > a serious proposal). -derek > Christian -- Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory Member, MIT Student Information Processing Board (SIPB) URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH warl...@mit.edu PGP key available _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel