diff --git a/cis/ReactOS.ApiStatus/Default.build b/cis/ReactOS.ApiStatus/Default.build
index abcc52ab482..b5fd27093bd 100644
--- a/cis/ReactOS.ApiStatus/Default.build
+++ b/cis/ReactOS.ApiStatus/Default.build
@@ -21,7 +21,7 @@
-
+
diff --git a/cis/ReactOS.ApiStatus/rapistatus.xsl b/cis/ReactOS.ApiStatus/rapistatus.xsl
index d429ec439d0..9c3896f7110 100755
--- a/cis/ReactOS.ApiStatus/rapistatus.xsl
+++ b/cis/ReactOS.ApiStatus/rapistatus.xsl
@@ -76,22 +76,28 @@
c
-
+
+
+
-
-
+
+
+
+
-
+
+
f
+
@@ -102,6 +108,7 @@
+
@@ -109,10 +116,10 @@
-
+
-
+
@@ -131,7 +138,10 @@
-
+
+
+
+
@@ -173,9 +183,16 @@
+
+
+
+
+
+
-
-
+
+
+
diff --git a/reactos/tools/rgenstat/rgenstat.c b/reactos/tools/rgenstat/rgenstat.c
index 12f6893221c..83a9bf5c472 100755
--- a/reactos/tools/rgenstat/rgenstat.c
+++ b/reactos/tools/rgenstat/rgenstat.c
@@ -398,7 +398,7 @@ skip_to_next_name(char *name)
return 0;
}
-// Build a path and filename so it is of the format [cvs-module][directory][filename].
+// Build a path and filename so it is of the format [module][directory][filename].
// Also convert all backslashes into forward slashes.
static void
get_filename(char *cvspath, char *filename, char *result)
@@ -659,10 +659,19 @@ compare_api_order(PAPI_INFO p, PAPI_INFO q)
return strcmp(p->name, q->name);
}
+char *
+get_filename_without_base(char *component_base,
+ char *filename)
+{
+ return &filename[strlen(component_base)];
+}
+
static void
-generate_xml_for_component(char *component_name)
+generate_xml_for_component(char *component_name,
+ char *component_base)
{
PAPI_INFO api_info;
+ char canonical_base[MAX_PATH];
char buf[200];
int complete;
int implemented_total;
@@ -678,28 +687,23 @@ generate_xml_for_component(char *component_name)
while (api_info != NULL)
{
if (api_info->tag_id == TAG_IMPLEMENTED)
- {
implemented_total ++;
- }
else if (api_info->tag_id == TAG_UNIMPLEMENTED)
- {
unimplemented_total ++;
- }
api_info = api_info->next;
}
if (implemented_total + unimplemented_total > 0)
- {
complete = ((implemented_total) * 100) / (implemented_total + unimplemented_total);
- }
else
- {
complete = 100;
- }
- sprintf(buf, "",
- component_name, complete, implemented_total, unimplemented_total);
+ strcpy(canonical_base, component_base);
+ path_to_url(canonical_base);
+
+ sprintf(buf, "",
+ component_name, canonical_base, complete, implemented_total, unimplemented_total);
write_line(buf);
if (api_info_list != NULL)
@@ -709,12 +713,12 @@ generate_xml_for_component(char *component_name)
api_info = api_info_list;
while (api_info != NULL)
{
- sprintf(buf, "",
+ sprintf(buf, "",
api_info->name,
api_info->tag_id == TAG_IMPLEMENTED ? "true" : "false",
- api_info->filename);
+ get_filename_without_base(component_base,
+ api_info->filename));
write_line(buf);
- write_line("");
api_info = api_info->next;
}
@@ -783,38 +787,26 @@ read_input_file(char *input_file)
/* Skip whitespace and eol characters */
while ((index < size) && (is_whitespace(buffer[index]) || (is_eol_char(buffer[index]))))
- {
index++;
- }
if ((file_pointer < size) && (buffer[index] == '\n'))
- {
index++;
- }
if (buffer[index] == ';')
{
/* Skip comments */
while ((index < size) && (!is_eol_char(buffer[index])))
- {
index++;
- }
if ((index < size) && (buffer[index] == '\n'))
- {
index++;
- }
continue;
}
/* Get component name */
start = index;
while ((index < size) && (!is_whitespace(buffer[index])))
- {
index++;
- }
if (index >= size)
- {
break;
- }
len = index - start;
strncpy(component_name, &buffer[start], len);
@@ -822,20 +814,14 @@ read_input_file(char *input_file)
/* Skip whitespace */
while ((index < size) && (is_whitespace(buffer[index])))
- {
index++;
- }
if (index >= size)
- {
break;
- }
/* Get component path */
start = index;
while ((index < size) && (!is_whitespace(buffer[index]) && !is_eol_char(buffer[index])))
- {
index++;
- }
len = index - start;
strncpy(component_path, &buffer[start], len);
@@ -851,20 +837,17 @@ read_input_file(char *input_file)
/* Skip to end of line */
while ((index < size) && (!is_eol_char(buffer[index])))
- {
index++;
- }
if ((index < size) && (buffer[index] == '\n'))
- {
index++;
- }
canonical_path = convert_path(component_path);
if (canonical_path != NULL)
{
process_directory(canonical_path, canonical_path);
free(canonical_path);
- generate_xml_for_component(component_name);
+ generate_xml_for_component(component_name,
+ component_path);
}
}
diff --git a/reactos/tools/rgenstat/web/index.html b/reactos/tools/rgenstat/web/index.html
new file mode 100644
index 00000000000..2231c3a002d
--- /dev/null
+++ b/reactos/tools/rgenstat/web/index.html
@@ -0,0 +1,14 @@
+
+
+If your browser do not support XSLT click here.
+
+
+