Author: hbelusca
Date: Sun Jan 18 13:04:43 2015
New Revision: 66049
URL:
http://svn.reactos.org/svn/reactos?rev=66049&view=rev
Log:
[CDMAKE]: Whitespace and tabs fixes only. Next time you open your editor for coding
ROS...: PLEASE, OH PLEASE!!! USE: 4-space indentation (NO TABS!!) and NO K&R coding
style!!!!! (we *already* have a fixed code style in ROS).
Modified:
trunk/reactos/tools/cdmake/cdmake.c
trunk/reactos/tools/cdmake/dirhash.c
trunk/reactos/tools/cdmake/dirhash.h
trunk/reactos/tools/cdmake/llmosrt.c
Modified: trunk/reactos/tools/cdmake/cdmake.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cdmake/cdmake.c?rev=…
==============================================================================
--- trunk/reactos/tools/cdmake/cdmake.c [iso-8859-1] (original)
+++ trunk/reactos/tools/cdmake/cdmake.c [iso-8859-1] Sun Jan 18 13:04:43 2015
@@ -80,59 +80,59 @@
struct cd_image
{
- FILE *file;
- DWORD sector; // sector to receive next byte
- int offset; // offset of next byte in sector
- int count; // number of bytes in buffer
- char filespecs[128];
- BYTE *buffer;
+ FILE *file;
+ DWORD sector; // sector to receive next byte
+ int offset; // offset of next byte in sector
+ int count; // number of bytes in buffer
+ char filespecs[128];
+ BYTE *buffer;
};
typedef struct date_and_time
{
- BYTE second;
- BYTE minute;
- BYTE hour;
- BYTE day;
- BYTE month;
- WORD year;
+ BYTE second;
+ BYTE minute;
+ BYTE hour;
+ BYTE day;
+ BYTE month;
+ WORD year;
} DATE_AND_TIME, *PDATE_AND_TIME;
typedef struct directory_record
{
- struct directory_record *next_in_directory;
- struct directory_record *next_in_path_table; /* directory record only */
- struct directory_record *next_in_memory;
- struct directory_record *first_record; /* directory record only */
- struct directory_record *parent;
- BYTE flags;
- char name[MAX_NAME_LENGTH+1];
- char name_on_cd[MAX_CDNAME_LENGTH+1];
- char extension[MAX_EXTENSION_LENGTH+1];
- char extension_on_cd[MAX_CDEXTENSION_LENGTH+1];
- char *joliet_name;
- const char *orig_name;
- DATE_AND_TIME date_and_time;
- DWORD sector;
- DWORD size;
- DWORD joliet_sector;
- DWORD joliet_size;
- unsigned level; /* directory record only */
- WORD path_table_index; /* directory record only */
+ struct directory_record *next_in_directory;
+ struct directory_record *next_in_path_table; /* directory record only */
+ struct directory_record *next_in_memory;
+ struct directory_record *first_record; /* directory record only */
+ struct directory_record *parent;
+ BYTE flags;
+ char name[MAX_NAME_LENGTH+1];
+ char name_on_cd[MAX_CDNAME_LENGTH+1];
+ char extension[MAX_EXTENSION_LENGTH+1];
+ char extension_on_cd[MAX_CDEXTENSION_LENGTH+1];
+ char *joliet_name;
+ const char *orig_name;
+ DATE_AND_TIME date_and_time;
+ DWORD sector;
+ DWORD size;
+ DWORD joliet_sector;
+ DWORD joliet_size;
+ unsigned level; /* directory record only */
+ WORD path_table_index; /* directory record only */
} DIR_RECORD, *PDIR_RECORD;
typedef enum directory_record_type
{
- DOT_RECORD,
- DOT_DOT_RECORD,
- SUBDIRECTORY_RECORD,
- FILE_RECORD
+ DOT_RECORD,
+ DOT_DOT_RECORD,
+ SUBDIRECTORY_RECORD,
+ FILE_RECORD
} DIR_RECORD_TYPE, *PDIR_RECORD_TYPE;
PDIR_RECORD sort_linked_list(PDIR_RECORD,
- unsigned, int (*)(PDIR_RECORD, PDIR_RECORD));
+ unsigned, int (*)(PDIR_RECORD, PDIR_RECORD));
static char DIRECTORY_TIMESTAMP[] = "~Y$'KOR$.3K&";
@@ -186,18 +186,18 @@
static char *edit_with_commas(DWORD x, BOOL pad)
{
- static char s[14];
- unsigned i = 13;
- do
- {
- if (i % 4 == 2) s[--i] = ',';
- s[--i] = (char)(x % 10 + '0');
- } while ((x/=10) != 0);
- if (pad)
- {
- while (i > 0) s[--i] = ' ';
- }
- return s + i;
+ static char s[14];
+ unsigned i = 13;
+ do
+ {
+ if (i % 4 == 2) s[--i] = ',';
+ s[--i] = (char)(x % 10 + '0');
+ } while ((x/=10) != 0);
+ if (pad)
+ {
+ while (i > 0) s[--i] = ' ';
+ }
+ return s + i;
}
/*-----------------------------------------------------------------------------
@@ -206,22 +206,22 @@
static void release_memory(void)
{
- while (root.next_in_memory != NULL)
- {
- struct directory_record *next =
- root.next_in_memory->next_in_memory;
+ while (root.next_in_memory != NULL)
+ {
+ struct directory_record *next =
+ root.next_in_memory->next_in_memory;
+ if (joliet)
+ free(root.next_in_memory->joliet_name);
+ free(root.next_in_memory);
+ root.next_in_memory = next;
+ }
if (joliet)
- free (root.next_in_memory->joliet_name);
- free (root.next_in_memory);
- root.next_in_memory = next;
- }
- if (joliet)
- free (root.joliet_name);
- if (cd.buffer != NULL)
- {
- free (cd.buffer);
- cd.buffer = NULL;
- }
+ free(root.joliet_name);
+ if (cd.buffer != NULL)
+ {
+ free(cd.buffer);
+ cd.buffer = NULL;
+ }
}
/*-----------------------------------------------------------------------------
@@ -229,18 +229,18 @@
error exit point in main().
-----------------------------------------------------------------------------*/
-void error_exit ( const char* fmt, ... )
-{
- va_list arg;
-
- va_start(arg, fmt);
- vprintf(fmt, arg);
- va_end(arg);
- printf("\n");
- if (cd.file != NULL)
- fclose(cd.file);
- release_memory();
- exit(1);
+void error_exit( const char* fmt, ... )
+{
+ va_list arg;
+
+ va_start(arg, fmt);
+ vprintf(fmt, arg);
+ va_end(arg);
+ printf("\n");
+ if (cd.file != NULL)
+ fclose(cd.file);
+ release_memory();
+ exit(1);
}
/*-----------------------------------------------------------------------------
@@ -250,14 +250,14 @@
static void flush_buffer(void)
{
- if (fwrite(cd.buffer, cd.count, 1, cd.file) < 1)
- error_exit("File write error");
- cd.count = 0;
- if (show_progress)
- {
- printf("\r%s ",
- edit_with_commas((total_sectors - cd.sector) * SECTOR_SIZE, TRUE));
- }
+ if (fwrite(cd.buffer, cd.count, 1, cd.file) < 1)
+ error_exit("File write error");
+ cd.count = 0;
+ if (show_progress)
+ {
+ printf("\r%s ",
+ edit_with_commas((total_sectors - cd.sector) * SECTOR_SIZE, TRUE));
+ }
}
/*-----------------------------------------------------------------------------
@@ -268,17 +268,17 @@
static void write_byte(BYTE x)
{
- if (cd.file != NULL)
- {
- cd.buffer[cd.count] = x;
- if (++cd.count == BUFFER_SIZE)
- flush_buffer();
- }
- if (++cd.offset == SECTOR_SIZE)
- {
- cd.sector++;
- cd.offset = 0;
- }
+ if (cd.file != NULL)
+ {
+ cd.buffer[cd.count] = x;
+ if (++cd.count == BUFFER_SIZE)
+ flush_buffer();
+ }
+ if (++cd.offset == SECTOR_SIZE)
+ {
+ cd.sector++;
+ cd.offset = 0;
+ }
}
/*-----------------------------------------------------------------------------
@@ -288,42 +288,42 @@
static void write_little_endian_word(WORD x)
{
- write_byte((BYTE)x);
- write_byte((BYTE)(x >> 8));
+ write_byte((BYTE)x);
+ write_byte((BYTE)(x >> 8));
}
static void write_big_endian_word(WORD x)
{
- write_byte((BYTE)(x >> 8));
- write_byte((BYTE)x);
+ write_byte((BYTE)(x >> 8));
+ write_byte((BYTE)x);
}
static void write_both_endian_word(WORD x)
{
- write_little_endian_word(x);
- write_big_endian_word(x);
+ write_little_endian_word(x);
+ write_big_endian_word(x);
}
static void write_little_endian_dword(DWORD x)
{
- write_byte((BYTE)x);
- write_byte((BYTE)(x >> 8));
- write_byte((BYTE)(x >> 16));
- write_byte((BYTE)(x >> 24));
+ write_byte((BYTE)x);
+ write_byte((BYTE)(x >> 8));
+ write_byte((BYTE)(x >> 16));
+ write_byte((BYTE)(x >> 24));
}
static void write_big_endian_dword(DWORD x)
{
- write_byte((BYTE)(x >> 24));
- write_byte((BYTE)(x >> 16));
- write_byte((BYTE)(x >> 8));
- write_byte((BYTE)x);
+ write_byte((BYTE)(x >> 24));
+ write_byte((BYTE)(x >> 16));
+ write_byte((BYTE)(x >> 8));
+ write_byte((BYTE)x);
}
static void write_both_endian_dword(DWORD x)
{
- write_little_endian_dword(x);
- write_big_endian_dword(x);
+ write_little_endian_dword(x);
+ write_big_endian_dword(x);
}
/*-----------------------------------------------------------------------------
@@ -334,8 +334,8 @@
static void fill_sector(void)
{
- while (cd.offset != 0)
- write_byte(0);
+ while (cd.offset != 0)
+ write_byte(0);
}
/*-----------------------------------------------------------------------------
@@ -345,8 +345,8 @@
static void write_string(char *s)
{
- while (*s != 0)
- write_byte(*s++);
+ while (*s != 0)
+ write_byte(*s++);
}
/*-----------------------------------------------------------------------------
@@ -356,10 +356,10 @@
static void write_string_as_big_endian_unicode(char *s)
{
- while (*s != 0)
- {
- write_byte(0);
- write_byte(*s++);
+ while (*s != 0)
+ {
+ write_byte(0);
+ write_byte(*s++);
}
}
@@ -369,10 +369,10 @@
static void write_block(unsigned count, BYTE value)
{
- while (count != 0)
- {
- write_byte(value);
- count--;
+ while (count != 0)
+ {
+ write_byte(value);
+ count--;
}
}
@@ -382,10 +382,10 @@
static void write_word_block(unsigned count, WORD value)
{
- while (count != 0)
- {
- write_big_endian_word(value);
- count--;
+ while (count != 0)
+ {
+ write_big_endian_word(value);
+ count--;
}
}
@@ -398,101 +398,101 @@
DIR_RECORD_TYPE DirType,
BOOL joliet)
{
- unsigned identifier_size;
- unsigned record_size;
-
- if (joliet)
- {
- if (DirType == DOT_RECORD || DirType == DOT_DOT_RECORD)
- identifier_size = 1;
+ unsigned identifier_size;
+ unsigned record_size;
+
+ if (joliet)
+ {
+ if (DirType == DOT_RECORD || DirType == DOT_DOT_RECORD)
+ identifier_size = 1;
+ else
+ identifier_size = strlen(d->joliet_name) * 2;
+ }
else
- identifier_size = strlen(d->joliet_name) * 2;
- }
- else
- {
+ {
+ switch (DirType)
+ {
+ case DOT_RECORD:
+ case DOT_DOT_RECORD:
+ identifier_size = 1;
+ break;
+ case SUBDIRECTORY_RECORD:
+ /*printf( "Subdir: %s\n", d->name_on_cd );*/
+ identifier_size = strlen(d->name_on_cd);
+ break;
+ case FILE_RECORD:
+ /*printf( "File: %s.%s -> %s.%s\n", d->name,
d->extension, d->name_on_cd, d->extension_on_cd );*/
+ identifier_size = strlen(d->name_on_cd) + 2;
+ if (d->extension_on_cd[0] != 0)
+ identifier_size += 1 + strlen(d->extension_on_cd);
+ break;
+ default:
+ identifier_size = 1;
+ break;
+ }
+ }
+ record_size = 33 + identifier_size;
+ if ((identifier_size & 1) == 0)
+ record_size++;
+ if (cd.offset + record_size > SECTOR_SIZE)
+ fill_sector();
+ write_byte((BYTE)record_size);
+ write_byte(0); // number of sectors in extended attribute record
+ if (joliet)
+ {
+ write_both_endian_dword(d->joliet_sector);
+ write_both_endian_dword(d->joliet_size);
+ }
+ else
+ {
+ write_both_endian_dword(d->sector);
+ write_both_endian_dword(d->size);
+ }
+ write_byte((BYTE)(d->date_and_time.year - 1900));
+ write_byte(d->date_and_time.month);
+ write_byte(d->date_and_time.day);
+ write_byte(d->date_and_time.hour);
+ write_byte(d->date_and_time.minute);
+ write_byte(d->date_and_time.second);
+ write_byte(0); // GMT offset
+ write_byte(d->flags);
+ write_byte(0); // file unit size for an interleaved file
+ write_byte(0); // interleave gap size for an interleaved file
+ write_both_endian_word((WORD) 1); // volume sequence number
+ write_byte((BYTE)identifier_size);
switch (DirType)
{
- case DOT_RECORD:
- case DOT_DOT_RECORD:
- identifier_size = 1;
- break;
- case SUBDIRECTORY_RECORD:
- /*printf ( "Subdir: %s\n", d->name_on_cd );*/
- identifier_size = strlen(d->name_on_cd);
- break;
- case FILE_RECORD:
- /*printf ( "File: %s.%s -> %s.%s\n", d->name, d->extension,
d->name_on_cd, d->extension_on_cd );*/
- identifier_size = strlen(d->name_on_cd) + 2;
- if (d->extension_on_cd[0] != 0)
- identifier_size += 1 + strlen(d->extension_on_cd);
- break;
- default:
- identifier_size = 1;
- break;
- }
- }
- record_size = 33 + identifier_size;
- if ((identifier_size & 1) == 0)
- record_size++;
- if (cd.offset + record_size > SECTOR_SIZE)
- fill_sector();
- write_byte((BYTE)record_size);
- write_byte(0); // number of sectors in extended attribute record
- if (joliet)
- {
- write_both_endian_dword(d->joliet_sector);
- write_both_endian_dword(d->joliet_size);
- }
- else
- {
- write_both_endian_dword(d->sector);
- write_both_endian_dword(d->size);
- }
- write_byte((BYTE)(d->date_and_time.year - 1900));
- write_byte(d->date_and_time.month);
- write_byte(d->date_and_time.day);
- write_byte(d->date_and_time.hour);
- write_byte(d->date_and_time.minute);
- write_byte(d->date_and_time.second);
- write_byte(0); // GMT offset
- write_byte(d->flags);
- write_byte(0); // file unit size for an interleaved file
- write_byte(0); // interleave gap size for an interleaved file
- write_both_endian_word((WORD) 1); // volume sequence number
- write_byte((BYTE)identifier_size);
- switch (DirType)
- {
- case DOT_RECORD:
- write_byte(0);
- break;
- case DOT_DOT_RECORD:
- write_byte(1);
- break;
- case SUBDIRECTORY_RECORD:
- if (joliet)
- write_string_as_big_endian_unicode(d->joliet_name);
- else
- write_string(d->name_on_cd);
- break;
- case FILE_RECORD:
- if (joliet)
- {
- write_string_as_big_endian_unicode(d->joliet_name);
- }
- else
- {
- write_string(d->name_on_cd);
- if (d->extension_on_cd[0] != 0)
- {
- write_byte('.');
- write_string(d->extension_on_cd);
- }
- write_string(";1");
- }
- break;
- }
- if ((identifier_size & 1) == 0)
- write_byte(0);
+ case DOT_RECORD:
+ write_byte(0);
+ break;
+ case DOT_DOT_RECORD:
+ write_byte(1);
+ break;
+ case SUBDIRECTORY_RECORD:
+ if (joliet)
+ write_string_as_big_endian_unicode(d->joliet_name);
+ else
+ write_string(d->name_on_cd);
+ break;
+ case FILE_RECORD:
+ if (joliet)
+ {
+ write_string_as_big_endian_unicode(d->joliet_name);
+ }
+ else
+ {
+ write_string(d->name_on_cd);
+ if (d->extension_on_cd[0] != 0)
+ {
+ write_byte('.');
+ write_string(d->extension_on_cd);
+ }
+ write_string(";1");
+ }
+ break;
+ }
+ if ((identifier_size & 1) == 0)
+ write_byte(0);
}
/*-----------------------------------------------------------------------------
@@ -502,16 +502,16 @@
static void convert_date_and_time(PDATE_AND_TIME dt, time_t *time)
{
- struct tm *timedef;
-
- timedef = localtime(time);
-
- dt->second = timedef->tm_sec;
- dt->minute = timedef->tm_min;
- dt->hour = timedef->tm_hour;
- dt->day = timedef->tm_mday;
- dt->month = timedef->tm_mon + 1;
- dt->year = timedef->tm_year + 1900;
+ struct tm *timedef;
+
+ timedef = localtime(time);
+
+ dt->second = timedef->tm_sec;
+ dt->minute = timedef->tm_min;
+ dt->hour = timedef->tm_hour;
+ dt->day = timedef->tm_mday;
+ dt->month = timedef->tm_mon + 1;
+ dt->year = timedef->tm_year + 1900;
}
/*-----------------------------------------------------------------------------
@@ -523,10 +523,10 @@
static int check_for_punctuation(int c, const char *name)
{
- c = toupper(c & 0xFF);
- if (!accept_punctuation_marks && !isalnum(c) && c != '_')
- error_exit("Punctuation mark in %s", name);
- return c;
+ c = toupper(c & 0xFF);
+ if (!accept_punctuation_marks && !isalnum(c) && c != '_')
+ error_exit("Punctuation mark in %s", name);
+ return c;
}
#if defined(_WIN32) && !defined(strcasecmp)
@@ -537,106 +537,105 @@
This function checks to see if there's a cdname conflict.
-----------------------------------------------------------------------------*/
-int cdname_exists ( PDIR_RECORD d )
-{
- PDIR_RECORD p = d->parent->first_record;
- while ( p )
- {
- if ( p != d
- && !strcasecmp ( p->name_on_cd, d->name_on_cd )
- && !strcasecmp ( p->extension_on_cd, d->extension_on_cd ) )
- return 1;
- p = p->next_in_directory;
- }
- return 0;
-}
-
-void parse_filename_into_dirrecord ( const char* filename, PDIR_RECORD d, BOOL dir )
-{
- const char *s = filename;
- char *t = d->name_on_cd;
- char *n = d->name;
- int joliet_length;
- int filename_counter;
- filename_counter = 1;
- while (*s != 0)
- {
- if (*s == '.')
- {
- s++;
- break;
- }
-
- if ( (size_t)(t-d->name_on_cd) < sizeof(d->name_on_cd)-1 )
- *t++ = check_for_punctuation(*s, filename);
- else if (!joliet)
- error_exit ("'%s' is not ISO-9660, aborting...", filename );
- if ( (size_t)(n-d->name) < sizeof(d->name)-1 )
- *n++ = *s;
- else if (!joliet)
- error_exit ( "'%s' is not ISO-9660, aborting...", filename );
- s++;
- }
- if (strlen(s) > MAX_EXTENSION_LENGTH)
- {
- error_exit ( "'%s' has too long extension for cdmake,
aborting...", filename );
- }
- *t = 0;
- strcpy(d->extension, s);
- t = d->extension_on_cd;
- while ( *s != 0 )
- {
- if ( (size_t)(t-d->extension_on_cd) < sizeof(d->extension_on_cd)-1 )
- *t++ = check_for_punctuation(*s, filename);
- else if (!joliet)
- error_exit ( "'%s' is not ISO-9660, aborting...", filename );
- s++;
- }
- *t = 0;
- *n = 0;
-
- if ( dir )
- {
- if (d->extension[0] != 0)
- {
- if (!joliet)
- error_exit("Directory with extension %s", filename);
- }
- d->flags = DIRECTORY_FLAG;
- } else
- d->flags = 0;
-
-
- filename_counter = 1;
- while ( cdname_exists ( d ) )
- {
-
- // the file name must be least 8 char long
- if (strlen(d->name_on_cd)<8)
- error_exit ( "'%s' is a duplicate file name, aborting...", filename
);
-
- if ((d->name_on_cd[8] == '.') && (strlen(d->name_on_cd) <
13))
- error_exit ( "'%s' is a duplicate file name, aborting...",
filename );
-
- // max 255 times for equal short filename
- if (filename_counter>255) error_exit ( "'%s' is a duplicate file name,
aborting...", filename );
- d->name_on_cd[8] = '~';
- memset(&d->name_on_cd[9],0,5);
- sprintf(&d->name_on_cd[9],"%d",filename_counter);
- filename_counter++;
-
- }
-
- if ( joliet )
- {
- joliet_length = strlen(filename);
- if (joliet_length > 64)
- error_exit ( "'%s' is not Joliet, aborting...", filename );
- d->joliet_name = malloc(joliet_length + 1);
- if (d->joliet_name == NULL)
- error_exit("Insufficient memory");
- strcpy(d->joliet_name, filename);
- }
+int cdname_exists( PDIR_RECORD d )
+{
+ PDIR_RECORD p = d->parent->first_record;
+ while ( p )
+ {
+ if ( p != d
+ && !strcasecmp( p->name_on_cd, d->name_on_cd )
+ && !strcasecmp( p->extension_on_cd, d->extension_on_cd ) )
+ return 1;
+ p = p->next_in_directory;
+ }
+ return 0;
+}
+
+void parse_filename_into_dirrecord( const char* filename, PDIR_RECORD d, BOOL dir )
+{
+ const char *s = filename;
+ char *t = d->name_on_cd;
+ char *n = d->name;
+ int joliet_length;
+ int filename_counter;
+ filename_counter = 1;
+ while (*s != 0)
+ {
+ if (*s == '.')
+ {
+ s++;
+ break;
+ }
+
+ if ( (size_t)(t-d->name_on_cd) < sizeof(d->name_on_cd)-1 )
+ *t++ = check_for_punctuation(*s, filename);
+ else if (!joliet)
+ error_exit("'%s' is not ISO-9660, aborting...", filename );
+ if ( (size_t)(n-d->name) < sizeof(d->name)-1 )
+ *n++ = *s;
+ else if (!joliet)
+ error_exit( "'%s' is not ISO-9660, aborting...", filename
);
+ s++;
+ }
+ if (strlen(s) > MAX_EXTENSION_LENGTH)
+ {
+ error_exit( "'%s' has too long extension for cdmake,
aborting...", filename );
+ }
+ *t = 0;
+ strcpy(d->extension, s);
+ t = d->extension_on_cd;
+ while ( *s != 0 )
+ {
+ if ( (size_t)(t-d->extension_on_cd) < sizeof(d->extension_on_cd)-1 )
+ *t++ = check_for_punctuation(*s, filename);
+ else if (!joliet)
+ error_exit( "'%s' is not ISO-9660, aborting...", filename
);
+ s++;
+ }
+ *t = 0;
+ *n = 0;
+
+ if ( dir )
+ {
+ if (d->extension[0] != 0)
+ {
+ if (!joliet)
+ error_exit("Directory with extension %s", filename);
+ }
+ d->flags = DIRECTORY_FLAG;
+ } else
+ {
+ d->flags = 0;
+ }
+
+ filename_counter = 1;
+ while ( cdname_exists( d ) )
+ {
+ // the file name must be least 8 char long
+ if (strlen(d->name_on_cd)<8)
+ error_exit( "'%s' is a duplicate file name, aborting...",
filename );
+
+ if ((d->name_on_cd[8] == '.') && (strlen(d->name_on_cd)
< 13))
+ error_exit( "'%s' is a duplicate file name, aborting...",
filename );
+
+ // max 255 times for equal short filename
+ if (filename_counter>255) error_exit( "'%s' is a duplicate file
name, aborting...", filename );
+ d->name_on_cd[8] = '~';
+ memset(&d->name_on_cd[9],0,5);
+ sprintf(&d->name_on_cd[9],"%d",filename_counter);
+ filename_counter++;
+ }
+
+ if ( joliet )
+ {
+ joliet_length = strlen(filename);
+ if (joliet_length > 64)
+ error_exit( "'%s' is not Joliet, aborting...", filename );
+ d->joliet_name = malloc(joliet_length + 1);
+ if (d->joliet_name == NULL)
+ error_exit("Insufficient memory");
+ strcpy(d->joliet_name, filename);
+ }
}
/*-----------------------------------------------------------------------------
@@ -649,66 +648,66 @@
/* Win32 version */
PDIR_RECORD
-new_directory_record (struct _finddata_t *f,
- PDIR_RECORD parent)
-{
- PDIR_RECORD d;
-
- d = calloc(1, sizeof(DIR_RECORD));
- if (d == NULL)
- error_exit("Insufficient memory");
- d->next_in_memory = root.next_in_memory;
- root.next_in_memory = d;
-
- /* I need the parent set before calling parse_filename_into_dirrecord(),
- because that functions checks for duplicate file names*/
- d->parent = parent;
- parse_filename_into_dirrecord ( f->name, d, f->attrib & _A_SUBDIR );
-
- convert_date_and_time(&d->date_and_time, &f->time_write);
- d->flags |= f->attrib & _A_HIDDEN ? HIDDEN_FLAG : 0;
- d->size = d->joliet_size = f->size;
- d->next_in_directory = parent->first_record;
- parent->first_record = d;
- return d;
+new_directory_record(struct _finddata_t *f,
+ PDIR_RECORD parent)
+{
+ PDIR_RECORD d;
+
+ d = calloc(1, sizeof(DIR_RECORD));
+ if (d == NULL)
+ error_exit("Insufficient memory");
+ d->next_in_memory = root.next_in_memory;
+ root.next_in_memory = d;
+
+ /* I need the parent set before calling parse_filename_into_dirrecord(),
+ because that functions checks for duplicate file names*/
+ d->parent = parent;
+ parse_filename_into_dirrecord( f->name, d, f->attrib & _A_SUBDIR );
+
+ convert_date_and_time(&d->date_and_time, &f->time_write);
+ d->flags |= f->attrib & _A_HIDDEN ? HIDDEN_FLAG : 0;
+ d->size = d->joliet_size = f->size;
+ d->next_in_directory = parent->first_record;
+ parent->first_record = d;
+ return d;
}
#else
/* Linux version */
PDIR_RECORD
-new_directory_record (struct dirent *entry,
- struct stat *stbuf,
- PDIR_RECORD parent)
-{
- PDIR_RECORD d;
- /*
- char *s;
- char *t;
- char *n;
- */
-
- d = calloc(1, sizeof(DIR_RECORD));
- if (d == NULL)
- error_exit("Insufficient memory");
- d->next_in_memory = root.next_in_memory;
- root.next_in_memory = d;
-
- /* I need the parent set before calling parse_filename_into_dirrecord(),
- because that functions checks for duplicate file names*/
- d->parent = parent;
+new_directory_record(struct dirent *entry,
+ struct stat *stbuf,
+ PDIR_RECORD parent)
+{
+ PDIR_RECORD d;
+ /*
+ char *s;
+ char *t;
+ char *n;
+ */
+
+ d = calloc(1, sizeof(DIR_RECORD));
+ if (d == NULL)
+ error_exit("Insufficient memory");
+ d->next_in_memory = root.next_in_memory;
+ root.next_in_memory = d;
+
+ /* I need the parent set before calling parse_filename_into_dirrecord(),
+ because that functions checks for duplicate file names*/
+ d->parent = parent;
#ifdef HAVE_D_TYPE
- parse_filename_into_dirrecord ( entry->d_name, d, entry->d_type == DT_DIR );
+ parse_filename_into_dirrecord( entry->d_name, d, entry->d_type == DT_DIR );
#else
- parse_filename_into_dirrecord ( entry->d_name, d, S_ISDIR(stbuf->st_mode) );
+ parse_filename_into_dirrecord( entry->d_name, d, S_ISDIR(stbuf->st_mode) );
#endif
- convert_date_and_time(&d->date_and_time, &stbuf->st_mtime);
- d->flags |= entry->d_name[0] == '.' ? HIDDEN_FLAG : 0;
- d->size = d->joliet_size = stbuf->st_size;
- d->next_in_directory = parent->first_record;
- parent->first_record = d;
- return d;
+ convert_date_and_time(&d->date_and_time, &stbuf->st_mtime);
+ d->flags |= entry->d_name[0] == '.' ? HIDDEN_FLAG : 0;
+ d->size = d->joliet_size = stbuf->st_size;
+ d->next_in_directory = parent->first_record;
+ parent->first_record = d;
+ return d;
}
#endif
@@ -721,10 +720,10 @@
static int compare_directory_order(PDIR_RECORD p, PDIR_RECORD q)
{
- int n = strcmp(p->name_on_cd, q->name_on_cd);
- if (n == 0)
- n = strcmp(p->extension_on_cd, q->extension_on_cd);
- return n;
+ int n = strcmp(p->name_on_cd, q->name_on_cd);
+ if (n == 0)
+ n = strcmp(p->extension_on_cd, q->extension_on_cd);
+ return n;
}
/*-----------------------------------------------------------------------------
@@ -735,16 +734,16 @@
static int compare_path_table_order(PDIR_RECORD p, PDIR_RECORD q)
{
- int n = p->level - q->level;
- if (p == q)
- return 0;
- if (n == 0)
- {
- n = compare_path_table_order(p->parent, q->parent);
+ int n = p->level - q->level;
+ if (p == q)
+ return 0;
if (n == 0)
- n = compare_directory_order(p, q);
- }
- return n;
+ {
+ n = compare_path_table_order(p->parent, q->parent);
+ if (n == 0)
+ n = compare_directory_order(p, q);
+ }
+ return n;
}
/*-----------------------------------------------------------------------------
@@ -753,8 +752,8 @@
static void append_string_to_source(char *s)
{
- while (*s != 0)
- *end_source++ = *s++;
+ while (*s != 0)
+ *end_source++ = *s++;
}
/*-----------------------------------------------------------------------------
@@ -767,76 +766,76 @@
#ifdef _WIN32
static void
-make_directory_records (PDIR_RECORD d)
-{
- PDIR_RECORD new_d;
- struct _finddata_t f;
- char *old_end_source;
- int findhandle;
-
- d->first_record = NULL;
- strcpy(end_source, "*.*");
-
- findhandle =_findfirst(source, &f);
- if (findhandle != 0)
+make_directory_records(PDIR_RECORD d)
+{
+ PDIR_RECORD new_d;
+ struct _finddata_t f;
+ char *old_end_source;
+ int findhandle;
+
+ d->first_record = NULL;
+ strcpy(end_source, "*.*");
+
+ findhandle =_findfirst(source, &f);
+ if (findhandle != 0)
+ {
+ do
+ {
+ if ((f.attrib & (_A_HIDDEN | _A_SUBDIR)) == 0 && f.name[0] !=
'.')
+ {
+ if (strcmp(f.name, DIRECTORY_TIMESTAMP) == 0)
+ {
+ convert_date_and_time(&d->date_and_time, &f.time_write);
+ }
+ else
+ {
+ if (verbosity == VERBOSE)
+ {
+ old_end_source = end_source;
+ strcpy(end_source, f.name);
+ printf("%d: file %s\n", d->level, source);
+ end_source = old_end_source;
+ }
+ (void) new_directory_record(&f, d);
+ }
+ }
+ }
+ while (_findnext(findhandle, &f) == 0);
+
+ _findclose(findhandle);
+ }
+
+ strcpy(end_source, "*.*");
+ findhandle= _findfirst(source, &f);
+ if (findhandle)
{
do
- {
- if ((f.attrib & (_A_HIDDEN | _A_SUBDIR)) == 0 && f.name[0] !=
'.')
- {
- if (strcmp(f.name, DIRECTORY_TIMESTAMP) == 0)
- {
- convert_date_and_time(&d->date_and_time, &f.time_write);
- }
- else
- {
- if (verbosity == VERBOSE)
- {
- old_end_source = end_source;
- strcpy(end_source, f.name);
- printf("%d: file %s\n", d->level, source);
- end_source = old_end_source;
- }
- (void) new_directory_record(&f, d);
- }
- }
- }
- while (_findnext(findhandle, &f) == 0);
-
- _findclose(findhandle);
- }
-
- strcpy(end_source, "*.*");
- findhandle= _findfirst(source, &f);
- if (findhandle)
- {
- do
- {
- if (f.attrib & _A_SUBDIR && f.name[0] != '.')
- {
- old_end_source = end_source;
- append_string_to_source(f.name);
- *end_source++ = DIR_SEPARATOR_CHAR;
- if (verbosity == VERBOSE)
- {
- *end_source = 0;
- printf("%d: directory %s\n", d->level + 1, source);
- }
- if (d->level < MAX_LEVEL)
- {
- new_d = new_directory_record(&f, d);
- new_d->next_in_path_table = root.next_in_path_table;
- root.next_in_path_table = new_d;
- new_d->level = d->level + 1;
- make_directory_records(new_d);
- }
- else
- {
- error_exit("Directory is nested too deep");
- }
- end_source = old_end_source;
- }
- }
+ {
+ if (f.attrib & _A_SUBDIR && f.name[0] != '.')
+ {
+ old_end_source = end_source;
+ append_string_to_source(f.name);
+ *end_source++ = DIR_SEPARATOR_CHAR;
+ if (verbosity == VERBOSE)
+ {
+ *end_source = 0;
+ printf("%d: directory %s\n", d->level + 1, source);
+ }
+ if (d->level < MAX_LEVEL)
+ {
+ new_d = new_directory_record(&f, d);
+ new_d->next_in_path_table = root.next_in_path_table;
+ root.next_in_path_table = new_d;
+ new_d->level = d->level + 1;
+ make_directory_records(new_d);
+ }
+ else
+ {
+ error_exit("Directory is nested too deep");
+ }
+ end_source = old_end_source;
+ }
+ }
while (_findnext(findhandle, &f) == 0);
_findclose(findhandle);
@@ -850,61 +849,61 @@
/* Linux version */
static void
-make_directory_records (PDIR_RECORD d)
-{
- PDIR_RECORD new_d;
- DIR *dirp;
- struct dirent *entry;
- char *old_end_source;
- struct stat stbuf;
- char buf[MAX_PATH];
-
- d->first_record = NULL;
+make_directory_records(PDIR_RECORD d)
+{
+ PDIR_RECORD new_d;
+ DIR *dirp;
+ struct dirent *entry;
+ char *old_end_source;
+ struct stat stbuf;
+ char buf[MAX_PATH];
+
+ d->first_record = NULL;
#ifdef HAVE_D_TYPE
- dirp = opendir(source);
- if (dirp != NULL)
- {
- while ((entry = readdir (dirp)) != NULL)
- {
- if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name,
"..") == 0)
- continue; // skip self and parent
-
- if (entry->d_type == DT_REG) // normal file
- {
- // Check for an absolute path
- if (source[0] == DIR_SEPARATOR_CHAR)
+ dirp = opendir(source);
+ if (dirp != NULL)
+ {
+ while ((entry = readdir(dirp)) != NULL)
+ {
+ if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name,
"..") == 0)
+ continue; // skip self and parent
+
+ if (entry->d_type == DT_REG) // normal file
+ {
+ // Check for an absolute path
+ if (source[0] == DIR_SEPARATOR_CHAR)
{
- strcpy(buf, source);
- strcat(buf, DIR_SEPARATOR_STRING);
- strcat(buf, entry->d_name);
+ strcpy(buf, source);
+ strcat(buf, DIR_SEPARATOR_STRING);
+ strcat(buf, entry->d_name);
}
- else
+ else
{
- if (!getcwd(buf, sizeof(buf)))
- error_exit("Can't get CWD: %s\n", strerror(errno));
- strcat(buf, DIR_SEPARATOR_STRING);
- strcat(buf, source);
- strcat(buf, entry->d_name);
+ if (!getcwd(buf, sizeof(buf)))
+ error_exit("Can't get CWD: %s\n",
strerror(errno));
+ strcat(buf, DIR_SEPARATOR_STRING);
+ strcat(buf, source);
+ strcat(buf, entry->d_name);
}
- if (stat(buf, &stbuf) == -1)
+ if (stat(buf, &stbuf) == -1)
{
- error_exit("Can't access '%s' (%s)\n", buf,
strerror(errno));
- return;
+ error_exit("Can't access '%s' (%s)\n", buf,
strerror(errno));
+ return;
}
- if (strcmp(entry->d_name, DIRECTORY_TIMESTAMP) == 0)
+ if (strcmp(entry->d_name, DIRECTORY_TIMESTAMP) == 0)
{
- convert_date_and_time(&d->date_and_time, &stbuf.st_ctime);
+ convert_date_and_time(&d->date_and_time,
&stbuf.st_ctime);
}
- else
+ else
{
- if (verbosity == VERBOSE)
+ if (verbosity == VERBOSE)
{
- printf("%d: file %s\n", d->level, buf);
+ printf("%d: file %s\n", d->level, buf);
}
- (void) new_directory_record(entry, &stbuf, d);
+ (void) new_directory_record(entry, &stbuf, d);
}
}
}
@@ -919,7 +918,7 @@
dirp = opendir(source);
if (dirp != NULL)
{
- while ((entry = readdir (dirp)) != NULL)
+ while ((entry = readdir(dirp)) != NULL)
{
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name,
"..") == 0)
continue; // skip self and parent
@@ -954,19 +953,19 @@
error_exit("Can't access '%s' (%s)\n", buf,
strerror(errno));
return;
}
- new_d = new_directory_record(entry, &stbuf, d);
- new_d->next_in_path_table = root.next_in_path_table;
- root.next_in_path_table = new_d;
- new_d->level = d->level + 1;
- make_directory_records(new_d);
- }
- else
- {
- error_exit("Directory is nested too deep");
- }
- end_source = old_end_source;
- *end_source = 0;
- }
+ new_d = new_directory_record(entry, &stbuf, d);
+ new_d->next_in_path_table = root.next_in_path_table;
+ root.next_in_path_table = new_d;
+ new_d->level = d->level + 1;
+ make_directory_records(new_d);
+ }
+ else
+ {
+ error_exit("Directory is nested too deep");
+ }
+ end_source = old_end_source;
+ *end_source = 0;
+ }
}
closedir(dirp);
}
@@ -981,7 +980,7 @@
dirp = opendir(source);
if (dirp != NULL)
{
- while ((entry = readdir (dirp)) != NULL)
+ while ((entry = readdir(dirp)) != NULL)
{
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name,
"..") == 0)
continue; // skip self and parent
@@ -1015,22 +1014,22 @@
*end_source++ = DIR_SEPARATOR_CHAR;
*end_source = 0;
if (verbosity == VERBOSE)
- {
- printf("%d: directory %s\n", d->level + 1, source);
- }
-
- if (d->level < MAX_LEVEL)
- {
- new_d = new_directory_record(entry, &stbuf, d);
- new_d->next_in_path_table = root.next_in_path_table;
- root.next_in_path_table = new_d;
- new_d->level = d->level + 1;
- make_directory_records(new_d);
- }
- else
- {
- error_exit("Directory is nested too deep");
- }
+ {
+ printf("%d: directory %s\n", d->level + 1, source);
+ }
+
+ if (d->level < MAX_LEVEL)
+ {
+ new_d = new_directory_record(entry, &stbuf, d);
+ new_d->next_in_path_table = root.next_in_path_table;
+ root.next_in_path_table = new_d;
+ new_d->level = d->level + 1;
+ make_directory_records(new_d);
+ }
+ else
+ {
+ error_exit("Directory is nested too deep");
+ }
end_source = old_end_source;
*end_source = 0;
@@ -1038,20 +1037,20 @@
else if (S_ISREG(stbuf.st_mode))
{
if (strcmp(entry->d_name, DIRECTORY_TIMESTAMP) == 0)
- {
- convert_date_and_time(&d->date_and_time, &stbuf.st_ctime);
- }
- else
- {
- if (verbosity == VERBOSE)
- {
- printf("%d: file %s\n", d->level, buf);
- }
- (void) new_directory_record(entry, &stbuf, d);
- }
- }
- }
- closedir (dirp);
+ {
+ convert_date_and_time(&d->date_and_time, &stbuf.st_ctime);
+ }
+ else
+ {
+ if (verbosity == VERBOSE)
+ {
+ printf("%d: file %s\n", d->level, buf);
+ }
+ (void) new_directory_record(entry, &stbuf, d);
+ }
+ }
+ }
+ closedir(dirp);
}
else
{
@@ -1228,25 +1227,25 @@
static void get_file_specifications(PDIR_RECORD d)
{
- if (d != &root)
- {
- get_file_specifications(d->parent);
- if (d->joliet_name == NULL)
- append_string_to_source(d->name);
- else
- append_string_to_source(d->joliet_name);
-
- if (((d->flags & DIRECTORY_FLAG) == 0 || joliet) && d->extension[0]
!= 0)
- {
- if (d->joliet_name == NULL)
- {
- *end_source++ = '.';
- append_string_to_source(d->extension);
- }
- }
- if (d->flags & DIRECTORY_FLAG)
- *end_source++ = DIR_SEPARATOR_CHAR;
- }
+ if (d != &root)
+ {
+ get_file_specifications(d->parent);
+ if (d->joliet_name == NULL)
+ append_string_to_source(d->name);
+ else
+ append_string_to_source(d->joliet_name);
+
+ if (((d->flags & DIRECTORY_FLAG) == 0 || joliet) &&
d->extension[0] != 0)
+ {
+ if (d->joliet_name == NULL)
+ {
+ *end_source++ = '.';
+ append_string_to_source(d->extension);
+ }
+ }
+ if (d->flags & DIRECTORY_FLAG)
+ *end_source++ = DIR_SEPARATOR_CHAR;
+ }
}
static void get_time_string(char *str)
@@ -1438,7 +1437,7 @@
n = BUFFER_SIZE - cd.count;
if ((DWORD) n > size)
n = size;
- if (fread (cd.buffer + cd.count, n, 1, file) < 1)
+ if (fread(cd.buffer + cd.count, n, 1, file) < 1)
{
fclose(file);
error_exit("Read error in file %s\n", bootimage);
@@ -1630,7 +1629,7 @@
n = BUFFER_SIZE - cd.count;
if ((DWORD) n > size)
n = size;
- if (fread (cd.buffer + cd.count, n, 1, file) < 1)
+ if (fread(cd.buffer + cd.count, n, 1, file) < 1)
{
fclose(file);
error_exit("Read error in file %s\n", file_source);
@@ -1677,58 +1676,58 @@
int main(int argc, char **argv)
{
- struct tm *current_time;
- time_t timestamp = time(NULL);
- BOOL q_option = FALSE;
- BOOL v_option = FALSE;
- int i;
- char *t;
-
- if (argc < 2)
- {
- puts(HELP);
- return 1;
- }
-
- if (setjmp(error))
- return 1;
-
- // initialize root directory
-
- cd.buffer = malloc (BUFFER_SIZE);
- if (cd.buffer == NULL)
- error_exit("Insufficient memory");
-
- memset(&root, 0, sizeof(root));
- current_time = gmtime(×tamp);
- root.level = 1;
- root.flags = DIRECTORY_FLAG;
- root.date_and_time.year = current_time->tm_year + 1900;
- root.date_and_time.month = current_time->tm_mon + 1;
- root.date_and_time.day = current_time->tm_mday;
- root.date_and_time.hour = current_time->tm_hour;
- root.date_and_time.minute = current_time->tm_min;
- root.date_and_time.second = current_time->tm_sec;
-
- // initialize CD-ROM write buffer
-
- cd.file = NULL;
- cd.filespecs[0] = 0;
-
- // initialize parameters
-
- verbosity = NORMAL;
- size_limit = 0;
- show_progress = FALSE;
- accept_punctuation_marks = FALSE;
- source[0] = 0;
- volume_label[0] = 0;
-
- eltorito = FALSE;
-
- // scan command line arguments
-
- for (i = 1; i < argc; i++)
+ struct tm *current_time;
+ time_t timestamp = time(NULL);
+ BOOL q_option = FALSE;
+ BOOL v_option = FALSE;
+ int i;
+ char *t;
+
+ if (argc < 2)
+ {
+ puts(HELP);
+ return 1;
+ }
+
+ if (setjmp(error))
+ return 1;
+
+ // initialize root directory
+
+ cd.buffer = malloc(BUFFER_SIZE);
+ if (cd.buffer == NULL)
+ error_exit("Insufficient memory");
+
+ memset(&root, 0, sizeof(root));
+ current_time = gmtime(×tamp);
+ root.level = 1;
+ root.flags = DIRECTORY_FLAG;
+ root.date_and_time.year = current_time->tm_year + 1900;
+ root.date_and_time.month = current_time->tm_mon + 1;
+ root.date_and_time.day = current_time->tm_mday;
+ root.date_and_time.hour = current_time->tm_hour;
+ root.date_and_time.minute = current_time->tm_min;
+ root.date_and_time.second = current_time->tm_sec;
+
+ // initialize CD-ROM write buffer
+
+ cd.file = NULL;
+ cd.filespecs[0] = 0;
+
+ // initialize parameters
+
+ verbosity = NORMAL;
+ size_limit = 0;
+ show_progress = FALSE;
+ accept_punctuation_marks = FALSE;
+ source[0] = 0;
+ volume_label[0] = 0;
+
+ eltorito = FALSE;
+
+ // scan command line arguments
+
+ for (i = 1; i < argc; i++)
{
if (memcmp(argv[i], "-s", 2) == 0)
{
Modified: trunk/reactos/tools/cdmake/dirhash.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cdmake/dirhash.c?rev…
==============================================================================
--- trunk/reactos/tools/cdmake/dirhash.c [iso-8859-1] (original)
+++ trunk/reactos/tools/cdmake/dirhash.c [iso-8859-1] Sun Jan 18 13:04:43 2015
@@ -83,17 +83,25 @@
int i, tgt;
int slash = 1;
- for (i = 0, tgt = 0; filename[i]; i++) {
- if (slash) {
- if (filename[i] != '/' && filename[i] != '\\') {
+ for (i = 0, tgt = 0; filename[i]; i++)
+ {
+ if (slash)
+ {
+ if (filename[i] != '/' && filename[i] != '\\')
+ {
filename[tgt++] = toupper(filename[i]);
slash = 0;
}
- } else {
- if (filename[i] == '/' || filename[i] == '\\') {
+ }
+ else
+ {
+ if (filename[i] == '/' || filename[i] == '\\')
+ {
slash = 1;
filename[tgt++] = DIR_SEPARATOR_CHAR;
- } else {
+ }
+ else
+ {
filename[tgt++] = toupper(filename[i]);
}
}
@@ -160,7 +168,7 @@
tf->target_name = strdup(filename);
}
-struct target_dir_entry *
+static struct target_dir_entry *
dir_hash_next_dir(struct target_dir_hash *dh, struct target_dir_traversal *t)
{
if (t->i == -1)
Modified: trunk/reactos/tools/cdmake/dirhash.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cdmake/dirhash.h?rev…
==============================================================================
--- trunk/reactos/tools/cdmake/dirhash.h [iso-8859-1] (original)
+++ trunk/reactos/tools/cdmake/dirhash.h [iso-8859-1] Sun Jan 18 13:04:43 2015
@@ -3,13 +3,15 @@
#define NUM_DIR_HASH_BUCKETS 1024
-struct target_file {
+struct target_file
+{
struct target_file *next;
char *source_name;
char *target_name;
};
-struct target_dir_entry {
+struct target_dir_entry
+{
struct target_dir_entry *next;
struct target_dir_entry *parent;
struct target_dir_entry *child;
@@ -18,12 +20,14 @@
char *case_name;
};
-struct target_dir_hash {
+struct target_dir_hash
+{
struct target_dir_entry *buckets[NUM_DIR_HASH_BUCKETS];
struct target_dir_entry root;
};
-struct target_dir_traversal {
+struct target_dir_traversal
+{
struct target_dir_entry *it;
int i;
};
@@ -32,7 +36,6 @@
void dir_hash_add_file(struct target_dir_hash *dh, const char *source, const char
*target);
struct target_dir_entry *
dir_hash_create_dir(struct target_dir_hash *dh, const char *casename, const char
*targetnorm);
-struct target_dir_entry *dir_hash_next_dir(struct target_dir_hash *dh, struct
target_dir_traversal *t);
void dir_hash_destroy(struct target_dir_hash *dh);
#endif //_REACTOS_TOOLS_CDMAKE_DIRHASH_H_
Modified: trunk/reactos/tools/cdmake/llmosrt.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cdmake/llmosrt.c?rev…
==============================================================================
--- trunk/reactos/tools/cdmake/llmosrt.c [iso-8859-1] (original)
+++ trunk/reactos/tools/cdmake/llmosrt.c [iso-8859-1] Sun Jan 18 13:04:43 2015
@@ -11,95 +11,95 @@
void *sort_linked_list(void *p, unsigned index, int (*compare)(void *, void *))
{
- unsigned base;
- unsigned long block_size;
+ unsigned base;
+ unsigned long block_size;
- struct record
- {
- struct record *next[1];
- /* other members not directly accessed by this function */
- };
+ struct record
+ {
+ struct record *next[1];
+ /* other members not directly accessed by this function */
+ };
- struct tape
- {
- struct record *first, *last;
- unsigned long count;
- } tape[4];
+ struct tape
+ {
+ struct record *first, *last;
+ unsigned long count;
+ } tape[4];
- /* Distribute the records alternately to tape[0] and tape[1]. */
+ /* Distribute the records alternately to tape[0] and tape[1]. */
- tape[0].count = tape[1].count = 0L;
- tape[0].first = NULL;
- base = 0;
- while (p != NULL)
- {
- struct record *next = ((struct record *)p)->next[index];
- ((struct record *)p)->next[index] = tape[base].first;
- tape[base].first = ((struct record *)p);
- tape[base].count++;
- p = next;
- base ^= 1;
- }
+ tape[0].count = tape[1].count = 0L;
+ tape[0].first = NULL;
+ base = 0;
+ while (p != NULL)
+ {
+ struct record *next = ((struct record *)p)->next[index];
+ ((struct record *)p)->next[index] = tape[base].first;
+ tape[base].first = ((struct record *)p);
+ tape[base].count++;
+ p = next;
+ base ^= 1;
+ }
- /* If the list is empty or contains only a single record, then */
- /* tape[1].count == 0L and this part is vacuous. */
+ /* If the list is empty or contains only a single record, then */
+ /* tape[1].count == 0L and this part is vacuous. */
- for (base = 0, block_size = 1L; tape[base+1].count != 0L;
- base ^= 2, block_size <<= 1)
- {
- int dest;
- struct tape *tape0, *tape1;
- tape0 = tape + base;
- tape1 = tape + base + 1;
- dest = base ^ 2;
- tape[dest].count = tape[dest+1].count = 0;
- for (; tape0->count != 0; dest ^= 1)
+ for (base = 0, block_size = 1L; tape[base+1].count != 0L;
+ base ^= 2, block_size <<= 1)
{
- unsigned long n0, n1;
- struct tape *output_tape = tape + dest;
- n0 = n1 = block_size;
- while (1)
- {
- struct record *chosen_record;
- struct tape *chosen_tape;
- if (n0 == 0 || tape0->count == 0)
+ int dest;
+ struct tape *tape0, *tape1;
+ tape0 = tape + base;
+ tape1 = tape + base + 1;
+ dest = base ^ 2;
+ tape[dest].count = tape[dest+1].count = 0;
+ for (; tape0->count != 0; dest ^= 1)
{
- if (n1 == 0 || tape1->count == 0)
- break;
- chosen_tape = tape1;
- n1--;
+ unsigned long n0, n1;
+ struct tape *output_tape = tape + dest;
+ n0 = n1 = block_size;
+ while (1)
+ {
+ struct record *chosen_record;
+ struct tape *chosen_tape;
+ if (n0 == 0 || tape0->count == 0)
+ {
+ if (n1 == 0 || tape1->count == 0)
+ break;
+ chosen_tape = tape1;
+ n1--;
+ }
+ else if (n1 == 0 || tape1->count == 0)
+ {
+ chosen_tape = tape0;
+ n0--;
+ }
+ else if ((*compare)(tape0->first, tape1->first) > 0)
+ {
+ chosen_tape = tape1;
+ n1--;
+ }
+ else
+ {
+ chosen_tape = tape0;
+ n0--;
+ }
+ chosen_tape->count--;
+ chosen_record = chosen_tape->first;
+ chosen_tape->first = chosen_record->next[index];
+ if (output_tape->count == 0)
+ output_tape->first = chosen_record;
+ else
+ output_tape->last->next[index] = chosen_record;
+ output_tape->last = chosen_record;
+ output_tape->count++;
+ }
}
- else if (n1 == 0 || tape1->count == 0)
- {
- chosen_tape = tape0;
- n0--;
- }
- else if ((*compare)(tape0->first, tape1->first) > 0)
- {
- chosen_tape = tape1;
- n1--;
- }
- else
- {
- chosen_tape = tape0;
- n0--;
- }
- chosen_tape->count--;
- chosen_record = chosen_tape->first;
- chosen_tape->first = chosen_record->next[index];
- if (output_tape->count == 0)
- output_tape->first = chosen_record;
- else
- output_tape->last->next[index] = chosen_record;
- output_tape->last = chosen_record;
- output_tape->count++;
- }
}
- }
- if (tape[base].count > 1L)
- tape[base].last->next[index] = NULL;
- return tape[base].first;
+ if (tape[base].count > 1L)
+ tape[base].last->next[index] = NULL;
+ return tape[base].first;
}
/* EOF */