components/cdrtools/patches/mkisofs.c.patch
author Boris Chiu <Boris.Chiu@Oracle.COM>
Wed, 17 Oct 2012 17:17:49 -0700
changeset 1019 9d261d526266
parent 356 cc77dce0ea27
permissions -rw-r--r--
7202122 work request without SIGNALED flag for unsignaled QP generates completion events 7202723 ibv_post_send(3) needs to be updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
356
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     1
--- cdrtools-3.00/mkisofs/mkisofs.c.orig	Tue Jun 28 15:31:06 2011
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     2
+++ cdrtools-3.00/mkisofs/mkisofs.c	Tue Jun 28 15:32:46 2011
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     3
@@ -66,7 +66,7 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     4
 struct directory *root = NULL;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     5
 int		path_ind;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     6
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     7
-char	version_string[] = VERSION;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     8
+char	version_string[] = VERSION "+eltorito-platform";
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
     9
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    10
 char		*outfile;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    11
 FILE		*discimage;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    12
@@ -110,6 +110,8 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    13
 int	osecsize = 0;	/* Output-sector size, 0 means default secsize 2048 */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    14
 int	use_Joliet = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    15
 int	jlen = JMAX;	/* maximum Joliet file name length */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    16
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    17
+int 	def_platid = EL_TORITO_ARCH_x86;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    18
 /*
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    19
  *	Verbose levels currently used:
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    20
  *
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    21
@@ -182,6 +184,7 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    22
 int	help;			/* CLI Parameter for -help option	    */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    23
 int	joliet_long;		/* CLI Parameter for -joliet-long option    */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    24
 char	*jcharset;		/* CLI Parameter for -jcharset option	    */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    25
+char	*modification_date;	/* CLI Parameter for -modification-date	    */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    26
 int	max_filenames;		/* CLI Parameter for -max-iso9660-filenames option */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    27
 char	*log_file;		/* CLI Parameter for -log-file option	    */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    28
 char	*dir_mode_str;		/* CLI Parameter for -new-dir-mode option   */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    29
@@ -446,7 +449,374 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    30
 	return (1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    31
 }
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    32
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    33
+#define	IS_SEPARATOR1(c)	(c == '/' || c == '-')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    34
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    35
+LOCAL boolean_t
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    36
+isalldigits(char *p, int n)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    37
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    38
+	int i;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    39
+	if (p == NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    40
+		return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    41
+	for (i = 0; i < n;  i++) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    42
+		if (p[i] == 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    43
+			return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    44
+		if ((p[i] < '0') || (p[i] > '9'))
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    45
+			return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    46
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    47
+	return (B_TRUE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    48
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    49
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    50
+LOCAL char *
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    51
+findnextsep(char *p, char *matches)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    52
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    53
+	char *mp;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    54
+	while (*p) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    55
+		if (matches == NULL) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    56
+			if ((*p < '0') || (*p > '9'))
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    57
+				return (p);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    58
+		} else {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    59
+			mp = matches;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    60
+			while (*mp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    61
+				if (*mp == *p)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    62
+					return (p);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    63
+				mp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    64
+			}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    65
+		}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    66
+		p++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    67
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    68
+	if (*p == NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    69
+		return (NULL);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    70
+	return (p);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    71
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    72
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    73
+LOCAL boolean_t
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    74
+check_n_get_val(char *s, int n, long *val, int checklower, long lower,
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    75
+int checkupper, long upper)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    76
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    77
+	char c;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    78
+	long l;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    79
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    80
+	if (isalldigits(s, n) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    81
+		return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    82
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    83
+	if (n > 20)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    84
+		return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    85
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    86
+	c = *(s+n);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    87
+	*(s + n) = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    88
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    89
+	errno = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    90
+	l = strtol(s, NULL, 10);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    91
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    92
+	*(s+n) = c;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    93
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    94
+	if (errno)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    95
+		return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    96
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    97
+	if (val != NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    98
+		*val = l;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    99
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   100
+	if (checklower)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   101
+		if (l < lower)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   102
+			return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   103
+	if (checkupper)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   104
+		if (l > upper)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   105
+			return (B_FALSE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   106
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   107
+	return (B_TRUE);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   108
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   109
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   110
 LOCAL int
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   111
+get_gmt()
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   112
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   113
+	time_t now;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   114
+	struct tm gmt, *gmp, *localp, localt;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   115
+	time_t		gmtoffsetsec = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   116
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   117
+	now = time(NULL);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   118
+	if (now == -1)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   119
+		comerrno(EX_BAD, "time failed internal error\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   120
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   121
+	localp = localtime(&now);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   122
+	if (localp == NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   123
+		comerrno(EX_BAD, "localtime failed internal error\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   124
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   125
+	localt = *localp;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   126
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   127
+	gmp = gmtime(&now);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   128
+	if (gmp == NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   129
+		comerrno(EX_BAD, "gmtime failed internal error\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   130
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   131
+	gmt = *gmp;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   132
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   133
+	gmtoffsetsec = mktime(&localt) - mktime(&gmt);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   134
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   135
+	return ((int)(gmtoffsetsec /(60 * 15)));
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   136
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   137
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   138
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   139
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   140
+char modbuf[18];
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   141
+LOCAL int
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   142
+get_modification_date(opt_arg)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   143
+	char	*opt_arg;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   144
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   145
+	int len;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   146
+	char *optp = opt_arg;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   147
+	char *dotp = NULL;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   148
+	char *signp = NULL;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   149
+	char *bufp = modbuf;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   150
+	char *tmpp = NULL;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   151
+	char *default_mod = "00010101000000000";
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   152
+	char tmpstr[5];
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   153
+	int gmtset = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   154
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   155
+	strncpy(modbuf, default_mod, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   156
+	modbuf[17] = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   157
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   158
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   159
+	len = strlen(opt_arg);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   160
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   161
+	/* first find the gmt */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   162
+	tmpp = strrchr(optp, '+');
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   163
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   164
+	if (tmpp != NULL || ((tmpp = strrchr(optp, '-')) != NULL)) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   165
+		/* it has to be the last 4 digits */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   166
+		if ((tmpp - optp) != (len  - 5)) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   167
+			if (*tmpp == '+')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   168
+				comerrno(EX_BAD, "Bad modification date\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   169
+			/* if '-' take it as a separator */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   170
+		} else {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   171
+			long gh, gm, val;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   172
+			if (check_n_get_val(tmpp + 1, 2, &gh, 0, 0, 0, 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   173
+			    != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   174
+				comerrno(EX_BAD, "Bad modification date:gh\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   175
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   176
+			if (check_n_get_val(tmpp + 3, 2, &gm, 0, 0, 0, 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   177
+			    != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   178
+				comerrno(EX_BAD, "Bad modification date:gm\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   179
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   180
+			val = (((gh * 60) + gm) / 15) *
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   181
+			    ((*tmpp == '-') ? -1 : 1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   182
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   183
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   184
+			if (val < -48 || val > 52)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   185
+				comerrno(EX_BAD, "Bad modification date:"
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   186
+				    " gmt offset\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   187
+			modbuf[16] = val;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   188
+			gmtset = 1;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   189
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   190
+			/* get rid of gmt in input str, we are done with it */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   191
+			*tmpp = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   192
+		}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   193
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   194
+	if (gmtset == 0) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   195
+		modbuf[16] = get_gmt();
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   196
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   197
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   198
+	len = strlen(optp);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   199
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   200
+	if ((tmpp = strrchr(optp, '.')) != NULL) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   201
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   202
+		if ((tmpp - optp) != (len  - 3)) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   203
+			comerrno(EX_BAD, "Bad modification date:hundredth "
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   204
+			    "of sec\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   205
+		}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   206
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   207
+		if (check_n_get_val(tmpp + 1, 2, NULL, 0, 0, 0, 0) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   208
+			comerrno(EX_BAD, "Bad modification date:hundredth of"
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   209
+			    " second length\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   210
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   211
+		/* since all digits, can not be > 99 */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   212
+		modbuf[14] = *(tmpp + 1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   213
+		modbuf[15] = *(tmpp + 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   214
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   215
+		/* get rid of hh in input str, we are done with it */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   216
+		*tmpp = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   217
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   218
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   219
+	tmpp = findnextsep(optp, "/-");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   220
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   221
+	if (tmpp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   222
+		if (tmpp - optp == 2) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   223
+			long year;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   224
+			/* 2 digit year YY- */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   225
+			if (check_n_get_val(optp, 2, &year, 0, 0, 0, 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   226
+			    != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   227
+				comerrno(EX_BAD, "Bad modification date:year"
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   228
+				    "length \n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   229
+			/* 69-99 1969-1999, 00-68 2000 to 2068  */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   230
+			if (year > 68)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   231
+				strncpy(bufp, "19", 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   232
+			else
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   233
+				strncpy(bufp, "20", 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   234
+			bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   235
+			strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   236
+			bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   237
+			optp = tmpp + 1;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   238
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   239
+		} else if (tmpp - optp == 4) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   240
+			long year;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   241
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   242
+			/* 4 digit year YYYY- */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   243
+			if (check_n_get_val(optp, 4, &year, 1, 1, 0, 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   244
+			    != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   245
+				comerrno(EX_BAD, "Bad modification date:"
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   246
+				    "year\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   247
+			strncpy(bufp, optp, 4);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   248
+			bufp += 4;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   249
+			optp = tmpp + 1;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   250
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   251
+		} else if (tmpp - optp == 6) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   252
+			/* YYYYMM- */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   253
+			long year;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   254
+			if (isalldigits(optp, 6) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   255
+				comerrno(EX_BAD, "Bad modification date: "
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   256
+				    "year\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   257
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   258
+			if (check_n_get_val(optp, 4, &year, 1, 1, 0, 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   259
+			    != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   260
+				comerrno(EX_BAD, "Bad modification date: year "
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   261
+				    "length\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   262
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   263
+			strncpy(bufp, optp, 4);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   264
+			optp = optp + 4;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   265
+			bufp += 4;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   266
+		} else
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   267
+			comerrno(EX_BAD, "Bad modification date\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   268
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   269
+	} else /* tmpp == NULL */ {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   270
+		/* YYYY[MM[DD.... */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   271
+		long year;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   272
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   273
+		if (check_n_get_val(optp, 4, &year, 1, 1, 0, 0) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   274
+			comerrno(EX_BAD, "Bad modification date year:length\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   275
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   276
+		strncpy(bufp, optp, 4);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   277
+		bufp += 4;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   278
+		optp += 4;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   279
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   280
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   281
+	if (*optp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   282
+		long month;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   283
+		/* optp should point to MM */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   284
+		if (check_n_get_val(optp, 2, &month, 1, 1, 1, 12) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   285
+			comerrno(EX_BAD, "Bad modification date:month\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   286
+		strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   287
+		bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   288
+		optp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   289
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   290
+	if ((*optp) && (IS_SEPARATOR1(*optp)))
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   291
+		optp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   292
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   293
+	if (*optp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   294
+		long day;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   295
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   296
+		if (check_n_get_val(optp, 2, &day, 1, 1, 1, 31) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   297
+			comerrno(EX_BAD, "Bad modification date: day\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   298
+		/* DD */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   299
+		strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   300
+		bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   301
+		optp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   302
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   303
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   304
+	if (*optp == ' ')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   305
+		optp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   306
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   307
+	if (*optp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   308
+		long hour;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   309
+		if (check_n_get_val(optp, 2, &hour, 0, 0, 1, 23) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   310
+			comerrno(EX_BAD, "Bad modification date: hour\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   311
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   312
+		strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   313
+		bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   314
+		optp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   315
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   316
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   317
+	if (*optp == ':')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   318
+		optp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   319
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   320
+	if (*optp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   321
+		long min;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   322
+		if (check_n_get_val(optp, 2, &min, 0, 0, 1, 59) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   323
+			comerrno(EX_BAD, "Bad modification date: minute\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   324
+		strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   325
+		bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   326
+		optp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   327
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   328
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   329
+	if (*optp == ':')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   330
+		optp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   331
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   332
+	if (*optp) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   333
+		long sec;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   334
+		if (check_n_get_val(optp, 2, &sec, 0, 0, 1, 59) != B_TRUE)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   335
+			comerrno(EX_BAD, "Bad modification date: second\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   336
+		strncpy(bufp, optp, 2);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   337
+		bufp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   338
+		optp += 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   339
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   340
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   341
+	if (*optp == ' ')
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   342
+		/* optional space */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   343
+		optp++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   344
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   345
+	if (*optp != 0) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   346
+		comerrno(EX_BAD, "Bad modification date: extra \n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   347
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   348
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   349
+	modification_date = modbuf;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   350
+	return (1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   351
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   352
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   353
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   354
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   355
+LOCAL int
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   356
+get_boot_platid(opt_arg)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   357
+	char	*opt_arg;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   358
+{
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   359
+	long	val;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   360
+	char	*ptr;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   361
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   362
+	use_eltorito++;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   363
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   364
+	if (strcmp(opt_arg, "x86") == 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   365
+		val = 0;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   366
+	else if (strcmp(opt_arg, "PPC") == 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   367
+		val = 1;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   368
+	else if (strcmp(opt_arg, "Mac") == 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   369
+		val = 2;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   370
+	else if (strcmp(opt_arg, "efi") == 0)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   371
+		val = 0xEF;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   372
+	else {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   373
+		val = strtol(opt_arg, &ptr, 0);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   374
+		if (*ptr || val < 0 || val >= 0x100) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   375
+			comerrno(EX_BAD, "Bad boot system ID.\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   376
+		}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   377
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   378
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   379
+	if (boot_image == NULL) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   380
+		/* called before -eltorito-boot option */
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   381
+		def_platid = val;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   382
+		return (1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   383
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   384
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   385
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   386
+	if (val != def_platid) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   387
+		new_boot_entry();
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   388
+		get_boot_entry();
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   389
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   390
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   391
+	if (current_boot_entry == NULL)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   392
+		comerrno(EX_BAD, "No current boot entry.\n");
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   393
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   394
+	current_boot_entry->type = ELTORITO_SECTION_HEADER;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   395
+	current_boot_entry->boot_platid = val;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   396
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   397
+	return (1);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   398
+}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   399
+
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   400
+LOCAL int
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   401
 get_boot_size(opt_arg)
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   402
 	char	*opt_arg;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   403
 {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   404
@@ -840,7 +1210,8 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   405
 	"Allow full 31 character filenames for ISO9660 names"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   406
 	{{"max-iso9660-filenames", &max_filenames },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   407
 	"Allow 37 character filenames for ISO9660 names (violates ISO9660)"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   408
-
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   409
+	{{"modification-date&", NULL, (getpargfun)get_modification_date},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   410
+	"\1[string]\1Set the modification date in the primary volume descriptor"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   411
 	{{"allow-leading-dots", &allow_leading_dots },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   412
 	"Allow ISO9660 filenames to start with '.' (violates ISO9660)"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   413
 	{{"ldots", &allow_leading_dots },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   414
@@ -968,6 +1339,8 @@
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   415
 	"Boot image is 'no emulation' image"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   416
 	{{"no-boot~", NULL, (getpargfun)get_no_boot },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   417
 	"Boot image is not bootable"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   418
+	{{"eltorito-platform&", NULL, (getpargfun)get_boot_platid },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   419
+	"\1#\1Set eltorito platform id"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   420
 	{{"boot-load-seg&", NULL, (getpargfun)get_boot_addr },
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   421
 	"\1#\1Set load segment for boot image"},
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
   422
 	{{"boot-load-size&", NULL, (getpargfun)get_boot_size },