Author: djpig
Date: 2006-02-10 14:40:46 +0000 (Fri, 10 Feb 2006)
New Revision: 99
Modified:
trunk/ChangeLog
trunk/debian/changelog
trunk/src/configure.c
Log:
On package configuration, differentiate between modified and
deleted configuration files (Ian Jackson). Closes: #351361
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-02-10 03:52:11 UTC (rev 98)
+++ trunk/ChangeLog 2006-02-10 14:40:46 UTC (rev 99)
@@ -1,3 +1,11 @@
+2006-02-10 Ian Jackson <[EMAIL PROTECTED]>
+
+ * src/configure.c: Differentiate between modified
+ and deleted configuration files. Gives and more
+ accurate description to the user and eliminates
+ a warning that was produced when trying to
+ backup a non-existant file.
+
2006-02-10 James R. Van Zandt <[EMAIL PROTECTED]>
* man/C/dpkg.1: Document the default log file. The behaviour in case
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2006-02-10 03:52:11 UTC (rev 98)
+++ trunk/debian/changelog 2006-02-10 14:40:46 UTC (rev 99)
@@ -42,6 +42,8 @@
by creating new files in a secure manner. Closes: #178839, #338591
* Fix some semantic errors in dpkg-shlibdeps due to typos in used
variables.
+ * On package configuration, differentiate between modified and
+ deleted configuration files (Ian Jackson). Closes: #351361
[ Christian Perrier ]
* Switch to po4a for manpages translation. Closes: #320122
Modified: trunk/src/configure.c
===================================================================
--- trunk/src/configure.c 2006-02-10 03:52:11 UTC (rev 98)
+++ trunk/src/configure.c 2006-02-10 14:40:46 UTC (rev 99)
@@ -214,6 +214,8 @@
useredited= strcmp(conff->hash,currenthash) !=
0;
distedited= strcmp(conff->hash,newdisthash) !=
0;
what= conffoptcells[useredited][distedited];
+ if (!strcmp(currenthash,NONEXISTENTFLAG))
+ what |= cfof_userrmd;
}
debug(dbg_conff,
@@ -222,7 +224,7 @@
what=promptconfaction(conff->name, cdr.buf, cdr2.buf,
useredited, distedited, what);
- switch (what & ~cfof_isnew) {
+ switch (what & ~(cfof_isnew|cfof_userrmd)) {
case cfo_keep | cfof_backup:
strcpy(cdr2rest,DPKGOLDEXT);
if (unlink(cdr2.buf) && errno != ENOENT)
@@ -258,8 +260,9 @@
fprintf(stderr,
_("dpkg: %s:
warning - failed to remove `%.250s' (before overwrite): %s\n"),
pkg->name,
cdr2.buf, strerror(errno));
- if (link(cdr.buf,cdr2.buf))
- fprintf(stderr,
+ if (!(what & cfof_userrmd))
+ if (link(cdr.buf,cdr2.buf))
+ fprintf(stderr,
_("dpkg: %s:
warning - failed to link `%.250s' to `%.250s': %s\n"),
pkg->name,
cdr.buf, cdr2.buf, strerror(errno));
/* fall through */
@@ -560,9 +563,11 @@
" ==> File on system created by
you or by a script.\n"
" ==> File also in package
provided by package maintainer.\n"));
} else {
- fprintf(stderr, useredited ?
+ fprintf(stderr, !useredited ?
+ _("\n Not modified since
installation.\n") :
+ !(what & cfof_userrmd) ?
_("\n ==> Modified (by you or by a
script) since installation.\n") :
- _("\n Not modified since
installation.\n"));
+ _("\n ==> Deleted (by you or by a
script) since installation.\n"));
fprintf(stderr, distedited ?
_(" ==> Package distributor has shipped
an updated version.\n") :
@@ -646,15 +651,17 @@
log_message("conffile %s %s", cfgfile,
(cc == 'i' || cc == 'y') ? "install" : "keep");
+ what &= cfof_userrmd;
+
switch (cc) {
case 'i':
case 'y':
- what=cfof_install|cfof_backup;
+ what |= cfof_install|cfof_backup;
break;
case 'n':
case 'o':
- what=cfof_keep|cfof_backup;
+ what |= cfof_keep|cfof_backup;
break;
default:
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]