# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../cron/hardened-remove.patch
# Copyright (C) 2004 - 2006 The T2 SDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---

Never ever remove my crontab mistyping -e ...

  - Rene Rebe <rene@exactcode.de>

diff -ur cron3.0pl1-orig/crontab.1 cron3.0pl1/crontab.1
--- cron3.0pl1-orig/crontab.1	2005-08-07 15:19:12.000000000 +0200
+++ cron3.0pl1/crontab.1	2005-08-07 15:26:58.175092641 +0200
@@ -24,7 +24,7 @@
 .SH SYNOPSIS
 crontab [ -u user ] file
 .br
-crontab [ -u user ] { -l | -r | -e }
+crontab [ -u user ] { -l | -rr | -e }
 .SH DESCRIPTION
 .I crontab
 is the program used to install, deinstall or list the tables
@@ -75,8 +75,11 @@
 below.
 .PP
 The
-.I -r
-option causes the current crontab to be removed.
+.I -rr
+option causes the current crontab to be removed. NOTE: Since users accidently
+managed to delet their crontab serveral times, accidently hitting -r instead
+of -e, - we decided that -r needs to be specified two (!) times in order to
+delete the user's crontab, on T2.
 .PP
 The
 .I -e
diff -ur cron3.0pl1-orig/crontab.c cron3.0pl1/crontab.c
--- cron3.0pl1-orig/crontab.c	2005-08-07 15:19:12.000000000 +0200
+++ cron3.0pl1/crontab.c	2005-08-07 15:23:59.485186577 +0200
@@ -81,11 +81,11 @@
 {
 	fprintf(stderr, "%s: usage error: %s\n", ProgramName, msg);
 	fprintf(stderr, "usage:\t%s [-u user] file\n", ProgramName);
-	fprintf(stderr, "\t%s [-u user] { -e | -l | -r }\n", ProgramName);
+	fprintf(stderr, "\t%s [-u user] { -e | -l | -rr }\n", ProgramName);
 	fprintf(stderr, "\t\t(default operation is replace, per 1003.2)\n");
 	fprintf(stderr, "\t-e\t(edit user's crontab)\n");
 	fprintf(stderr, "\t-l\t(list user's crontab)\n");
-	fprintf(stderr, "\t-r\t(delete user's crontab)\n");
+	fprintf(stderr, "\t-rr\t(delete user's crontab)\n");
 	exit(ERROR_EXIT);
 }
 
@@ -121,7 +121,7 @@
 	switch (Option) {
 	case opt_list:		list_cmd();
 				break;
-	case opt_delete:	delete_cmd();
+	case opt_delete:	printf("here\n") ; // delete_cmd();
 				break;
 	case opt_edit:		edit_cmd();
 				break;
@@ -153,6 +153,7 @@
 {
 	int		argch;
 	struct stat	statbuf;
+	static int	really_delete = 0;
 
 	if (!(pw = getpwuid(getuid()))) {
 		fprintf(stderr, "%s: your UID isn't in the passwd file.\n",
@@ -205,7 +206,10 @@
 		case 'r':
 			if (Option != opt_unknown)
 				usage("only one operation permitted");
-			Option = opt_delete;
+			if (really_delete)
+				Option = opt_delete;
+			else
+				really_delete = 1;
 			break;
 		case 'e':
 			if (Option != opt_unknown)