static int cmd_setcancel (ASSUAN_CONTEXT ctx, char *line) { char *newc; newc = malloc (strlen (line) + 1); if (!newc) return ASSUAN_Out_Of_Core; strcpy_escaped (newc, line); if (pinentry.cancel) free (pinentry.cancel); pinentry.cancel = newc; return 0; }
static int cmd_settitle (ASSUAN_CONTEXT ctx, char *line) { char *newt; newt = malloc (strlen (line) + 1); if (!newt) return ASSUAN_Out_Of_Core; strcpy_escaped (newt, line); if (pinentry.title) free (pinentry.title); pinentry.title = newt; return 0; }
static int cmd_setnotok (ASSUAN_CONTEXT ctx, char *line) { char *newo; newo = malloc (strlen (line) + 1); if (!newo) return ASSUAN_Out_Of_Core; strcpy_escaped (newo, line); if (pinentry.notok) free (pinentry.notok); pinentry.notok = newo; return 0; }
static int cmd_seterror (ASSUAN_CONTEXT ctx, char *line) { char *newe; newe = malloc (strlen (line) + 1); if (!newe) return ASSUAN_Out_Of_Core; strcpy_escaped (newe, line); if (pinentry.error) free (pinentry.error); pinentry.error = newe; return 0; }
static int cmd_setprompt (ASSUAN_CONTEXT ctx, char *line) { char *newp; newp = malloc (strlen (line) + 1); if (!newp) return ASSUAN_Out_Of_Core; strcpy_escaped (newp, line); if (pinentry.prompt) free (pinentry.prompt); pinentry.prompt = newp; return 0; }
static int cmd_setdesc (ASSUAN_CONTEXT ctx, char *line) { char *newd; newd = malloc (strlen (line) + 1); if (!newd) return ASSUAN_Out_Of_Core; strcpy_escaped (newd, line); if (pinentry.description) free (pinentry.description); pinentry.description = newd; return 0; }
static int cmd_setqualitybar (ASSUAN_CONTEXT ctx, char *line) { char *newval; if (!*line) line = "Quality:"; newval = malloc (strlen (line) + 1); if (!newval) return ASSUAN_Out_Of_Core; strcpy_escaped (newval, line); if (pinentry.quality_bar) free (pinentry.quality_bar); pinentry.quality_bar = newval; return 0; }
/* Unescape special characters in INFO and write unescaped string into newly allocated memory in *INFO_FROBBED. Returns proper error code. */ static gpg_error_t frob_info_msg (const char *info, char **info_frobbed) { gpg_error_t err = 0; *info_frobbed = xtrymalloc (strlen (info) + 1); if (!*info_frobbed) { err = gpg_error_from_errno (errno); goto out; } strcpy_escaped (*info_frobbed, info); out: return err; }
/* Set the tooltip to be used for a quality bar. */ static int cmd_setqualitybar_tt (ASSUAN_CONTEXT ctx, char *line) { char *newval; if (*line) { newval = malloc (strlen (line) + 1); if (!newval) return ASSUAN_Out_Of_Core; strcpy_escaped (newval, line); } else newval = NULL; if (pinentry.quality_bar_tt) free (pinentry.quality_bar_tt); pinentry.quality_bar_tt = newval; return 0; }