va_end (args);
query (const char *ctlstr, ...){  va_list args;  int answer;  int ans2;  int retval;  va_start (args, ctlstr);  if (query_hook)    {      return query_hook (ctlstr, args);    }  /* Automatically answer "yes" if input is not from a terminal.  */  if (!input_from_terminal_p ())    return 1;  while (1)    {      wrap_here ("");		/* Flush any buffered output */      gdb_flush (gdb_stdout);      if (annotation_level > 1)	printf_filtered ("\n\032\032pre-query\n");      vfprintf_filtered (gdb_stdout, ctlstr, args);      printf_filtered ("(y or n) ");      if (annotation_level > 1)	printf_filtered ("\n\032\032query\n");      wrap_here ("");      gdb_flush (gdb_stdout);      answer = fgetc (stdin);      clearerr (stdin);		/* in case of C-d */      if (answer == EOF)	/* C-d */	{	  retval = 1;	  break;	}      /* Eat rest of input line, to EOF or newline */      if (answer != '\n')	do	  {	    ans2 = fgetc (stdin);	    clearerr (stdin);	  }	while (ans2 != EOF && ans2 != '\n' && ans2 != '\r');      if (answer >= 'a')	answer -= 040;      if (answer == 'Y')	{	  retval = 1;	  break;	}      if (answer == 'N')	{	  retval = 0;	  break;	}      printf_filtered ("Please answer y or n.\n");    }  if (annotation_level > 1)    printf_filtered ("\n\032\032post-query\n");  return retval;}