git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v8 1/4] usage: make error functions a stack

From
Keller, Jacob E <jacob.e.keller@intel.com>
Date
Jul 15, 2014, 23:24 UTC
Message-ID
<1405466672.2577.14.camel@jekeller-desk1.amr.corp.intel.com>
In-Reply-To
<xmqq7g3etf1o.fsf@gitster.dls.corp.google.com>
On Tue, 2014-07-15 at 15:47 -0700, Junio C Hamano wrote:
Show 10 quoted lines
> Jacob Keller <jacob.e.keller@intel.com> writes:
> 
> >  extern void set_error_routine(void (*routine)(const char *err, va_list params));
> > +extern void pop_error_routine(void);
> 
> pop that undoes set smells somewhat weird.  Perhaps we should rename
> set to push?  That would allow us catch possible topics that add new
> calls to set_error_routine() as well by forcing the system not to
> link when they are merged without necessary fixes.
> 

I thought about changing set too, but wasn't sure that made sense..? That does make more sense now though. There *are* valid use cases where a set_error_routine is used without a pop, (the one current use, I think).

I'll update this patch with that change.
Show 20 quoted lines
> > +/* push error routine onto the error function stack */
> >  void set_error_routine(void (*routine)(const char *err, va_list params))
> >  {
> > -	error_routine = routine;
> > +	struct error_func_list *efl = xmalloc(sizeof(*efl));
> > +	efl->func = routine;
> > +	efl->next = error_funcs;
> > +	error_funcs = efl;
> > +}
> > +
> > +/* pop a single error routine off of the error function stack, thus reverting
> > + * to previous error. Should always be paired with a set_error_routine */
> > +void pop_error_routine(void)
> > +{
> > +	assert(error_funcs != &default_error_func);
> > +
> > +	struct error_func_list *efl = error_funcs;
> 
> decl-after-stmt.  Can be fixed easily by flipping the above two
> lines.
Oh, right yes. I'll fix that in a resend as well.

Thanks, Jake

Previous: Junio C HamanoNext: Keller, Jacob E
Message 4 of 11 in “tag: configure default tag sort via .gitconfig”
  1. 0/4 tag: configure default tag sort via .gitconfigJacob Keller, Jul 15, 2014
  2. 1/4 usage: make error functions a stackJacob Keller, Jul 15, 2014
  3. Junio C HamanoJul 15, 2014
  4. Keller, Jacob EJul 15, 2014
  5. Keller, Jacob EJul 15, 2014
  6. Junio C HamanoJul 16, 2014
  7. Keller, Jacob EJul 16, 2014
  8. 2/4 tag: fix --sort tests to use cat<<-\EOF formatJacob Keller, Jul 15, 2014
  9. 3/4 tag: update parsing to be more precise regarding errorsJacob Keller, Jul 15, 2014
  10. 4/4 tag: support configuring --sort via .gitconfigJacob Keller, Jul 15, 2014
  11. Junio C HamanoJul 15, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.