Marcela Mašláňová 489143
--- at-3.1.10/at.1.in.t_opti	2006-09-12 12:48:04.000000000 +0200
Marcela Mašláňová 489143
+++ at-3.1.10/at.1.in	2006-09-12 12:45:40.000000000 +0200
Marcela Mašláňová 489143
@@ -12,6 +12,16 @@
Marcela Mašláňová 489143
 .RB [ -mldbv ]
Marcela Mašláňová 489143
 .B TIME
Marcela Mašláňová 489143
 .br
Marcela Mašláňová 489143
+.B at
Marcela Mašláňová 489143
+.RB [ -V ]
Marcela Mašláňová 489143
+.RB [ -q
Marcela Mašláňová 489143
+.IR queue ]
Marcela Mašláňová 489143
+.RB [ -f
Marcela Mašláňová 489143
+.IR file ]
Marcela Mašláňová 489143
+.RB [ -mldbv ]
Marcela Mašláňová 489143
+.RB -t
Marcela Mašláňová 489143
+.IR time_arg
Marcela Mašláňová 489143
+.br
Marcela Mašláňová 489143
 .B "at -c"
Marcela Mašláňová 489143
 .I job
Marcela Mašláňová 489143
 .RI [ job... ]
Marcela Mašláňová 489143
@@ -227,6 +237,15 @@
Marcela Mašláňová 489143
 .B
Marcela Mašláňová 489143
 \-c
Marcela Mašláňová 489143
 cats the jobs listed on the command line to standard output.
Marcela Mašláňová 489143
+.TP
Marcela Mašláňová 489143
+.BI \-t " time_arg"
Marcela Mašláňová 489143
+Submit the job to be run at the time specified by the
Marcela Mašláňová 489143
+.BI time_arg
Marcela Mašláňová 489143
+option argument, which must have the same format as specified for the
Marcela Mašláňová 489143
+.BR touch(1)
Marcela Mašláňová 489143
+utility's
Marcela Mašláňová 489143
+.B -t
Marcela Mašláňová 489143
+time option argument ([[CC]YY]MMDDhhmm).
Marcela Mašláňová 489143
 .SH FILES
Marcela Mašláňová 489143
 .I @ATJBD@
Marcela Mašláňová 489143
 .br
Marcela Mašláňová 489143
--- at-3.1.10/at.c.t_   2006-09-12 10:15:56.000000000 +0200
Marcela Mašláňová 489143
+++ at-3.1.10/at.c      2006-09-12 10:30:17.000000000 +0200
Marcela Mašláňová bf7489
@@ -750,6 +750,101 @@
Marcela Mašláňová bf7489
     return p;
Marcela Mašláňová bf7489
 }
Marcela Mašláňová bf7489
 
Marcela Mašláňová bf7489
+/* Handle POSIX.2 '-t' option :
Marcela Mašláňová bf7489
+ *  Parses time string in "touch(1)" format:
Marcela Mašláňová bf7489
+ *       [[CC]YY]MMDDhhmm[.ss]
Marcela Mašláňová bf7489
+ *  and returns time_t .
Marcela Mašláňová bf7489
+ */
Marcela Mašláňová bf7489
+time_t
Marcela Mašláňová bf7489
+t_option(char *s)
Marcela Mašláňová bf7489
+{
Marcela Mašláňová bf7489
+        time_t t=time(0L);
Marcela Mašláňová bf7489
+        struct tm tm, tm_now=*localtime(&t);
Marcela Mašláňová bf7489
+        int l;
Marcela Mašláňová bf7489
+    
Marcela Mašláňová bf7489
+        if((s == 0L) || (*s == '\0'))
Marcela Mašláňová bf7489
+        {
Marcela Mašláňová bf7489
+	       return 0L;
Marcela Mašláňová bf7489
+	    };
Marcela Mašláňová bf7489
+	    memset(&tm,'\0',sizeof(tm));
Marcela Mašláňová bf7489
+	    l = strnlen(s,15);
Marcela Mašláňová bf7489
+	    switch(l)
Marcela Mašláňová bf7489
+	    {
Marcela Mašláňová bf7489
+	        case 15:
Marcela Mašláňová bf7489
+	           /* CCYYMMDDhhmm.ss */
Marcela Mašláňová bf7489
+	           sscanf(s, "%4d%2d%2d%2d%2d.%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	           if(tm.tm_year)
Marcela Mašláňová bf7489
+	               tm.tm_year -= 1900 ;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        case 13:
Marcela Mašláňová bf7489
+	           /* YYMMDDhhmm.ss */
Marcela Mašláňová bf7489
+	           sscanf(s, "%2d%2d%2d%2d%2d.%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	           if(tm.tm_year)
Marcela Mašláňová bf7489
+	               tm.tm_year += 100 ; /* Y2.1K+ bug! */
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	    	    
Marcela Mašláňová bf7489
+	        case 11:
Marcela Mašláňová bf7489
+	           /* MMDDhhmm.ss */
Marcela Mašláňová bf7489
+	           sscanf(s, "%2d%2d%2d%2d.%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	           tm.tm_year = tm_now.tm_year;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	           if(tm.tm_mon)
Marcela Mašláňová bf7489
+	               tm.tm_mon -= 1;
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        case 12:
Marcela Mašláňová bf7489
+	           /* CCYYMMDDhhmm */
Marcela Mašláňová bf7489
+	           sscanf(s, "%4d%2d%2d%2d%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	           if(tm.tm_year)
Marcela Mašláňová bf7489
+	               tm.tm_year -= 1900 ;
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        case 10:
Marcela Mašláňová bf7489
+	           /* YYMMDDhhmm */
Marcela Mašláňová bf7489
+	           sscanf(s, "%2d%2d%2d%2d%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	           if(tm.tm_year)
Marcela Mašláňová bf7489
+	               tm.tm_year += 100 ; /* Y2.1K+ bug! */
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        case  8:
Marcela Mašláňová bf7489
+	           /* MMDDhhmm */
Marcela Mašláňová bf7489
+	           sscanf(s, "%2d%2d%2d%2d",
Marcela Mašláňová bf7489
+	                  &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min
Marcela Mašláňová bf7489
+	                 );
Marcela Mašláňová bf7489
+	           if( tm.tm_mday )
Marcela Mašláňová bf7489
+	               tm.tm_year = tm_now.tm_year;
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	        default:
Marcela Mašláňová bf7489
+	           break;
Marcela Mašláňová bf7489
+	        }
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        if( tm.tm_mon )
Marcela Mašláňová bf7489
+	           tm.tm_mon -= 1;
Marcela Mašláňová bf7489
+	    
Marcela Mašláňová bf7489
+	        if( tm.tm_mday )
Marcela Mašláňová bf7489
+	        {
Marcela Mašláňová bf7489
+		       tm.tm_isdst = tm_now.tm_isdst;
Marcela Mašláňová bf7489
+		       return mktime(&tm;;
Marcela Mašláňová bf7489
+		} else
Marcela Mašláňová bf7489
+		       return 0L;
Marcela Mašláňová bf7489
+}
Marcela Mašláňová bf7489
+		
Marcela Mašláňová bf7489
+
Marcela Mašláňová bf7489
+
Marcela Mašláňová bf7489
 int
Marcela Mašláňová bf7489
 main(int argc, char **argv)
Marcela Mašláňová bf7489
 {