diff --git a/src/libavrdude.h b/src/libavrdude.h index 627d54b1..baa24b1c 100644 --- a/src/libavrdude.h +++ b/src/libavrdude.h @@ -1274,6 +1274,7 @@ enum updateflags { UF_NOWRITE = 1, UF_AUTO_ERASE = 2, UF_VERIFY = 4, + UF_NOHEADING = 8, }; diff --git a/src/term.c b/src/term.c index 2eda2db9..e56becf7 100644 --- a/src/term.c +++ b/src/term.c @@ -758,7 +758,7 @@ static int cmd_backup(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c }; pgm->flush_cache(pgm, p); // Flush cache before any device memory access - int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE); // -U argv[1]:r:file + int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE|UF_NOHEADING); // -U argv[1]:r:file mmt_free(upd.filename); mmt_free(upd.memstr); @@ -802,7 +802,7 @@ static int cmd_restore(const PROGRAMMER *pgm, const AVRPART *p, int argc, const }; pgm->flush_cache(pgm, p); // Flush cache before any device memory access - int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE|UF_VERIFY); // -U argv[1]:w:file (no -V) + int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE|UF_VERIFY|UF_NOHEADING); // -U argv[1]:w:file (no -V) mmt_free(upd.filename); mmt_free(upd.memstr); pgm->reset_cache(pgm, p); // Reset cache after writing to memories @@ -843,7 +843,7 @@ static int cmd_verify(const PROGRAMMER *pgm, const AVRPART *p, int argc, const c }; pgm->flush_cache(pgm, p); // Flush cache before any device memory access - int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE); // -V -U argv[1]:v:file + int ret = do_op(pgm, p, &upd, UF_AUTO_ERASE|UF_NOHEADING); // -V -U argv[1]:v:file mmt_free(upd.filename); mmt_free(upd.memstr); diff --git a/src/update.c b/src/update.c index 5823cace..9a5637a7 100644 --- a/src/update.c +++ b/src/update.c @@ -633,12 +633,14 @@ int do_op(const PROGRAMMER *pgm, const AVRPART *p, const UPDATE *upd, enum updat AVRMEM *mem, **umemlist = NULL, *m; Segment *seglist = NULL; Filestats fs; - char *tofree; const char *umstr = upd->memstr; - lmsg_info("\n"); // Ensure an empty line for visual separation of operations - pmsg_info("processing %s\n", tofree = update_str(upd)); - mmt_free(tofree); + if(!(flags & UF_NOHEADING)) { + char *heading = update_str(upd); + lmsg_info("\n"); // Ensure an empty line for visual separation of operations + pmsg_info("processing %s\n", heading); + mmt_free(heading); + } if(upd->cmdline) { if(!str_eq(upd->cmdline, "interactive terminal"))