1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 14:26:39 +02:00

doc: update autogen files only if changed, add autogen dependencies on docs

This commit is contained in:
Sébastien Helleu
2023-03-29 23:54:07 +02:00
parent 6dbfb638c6
commit 3eeef346b1
8 changed files with 186 additions and 80 deletions
+4
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.de.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.de.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.de.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.de.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.de.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.de.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.de.html"
)
+12
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.en.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.en.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.en.html"
)
@@ -74,6 +78,14 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.en.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_completions.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_config_priority.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_hdata.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infolists.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos_hashtable.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_plugins_priority.en.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_url_options.en.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.en.html"
)
+12
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.fr.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.fr.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.fr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.fr.html"
)
@@ -74,6 +78,14 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.fr.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_completions.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_config_priority.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_hdata.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infolists.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos_hashtable.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_plugins_priority.fr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_url_options.fr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.fr.html"
)
+12
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.it.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.it.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.it.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.it.html"
)
@@ -74,6 +78,14 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.it.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_completions.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_config_priority.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_hdata.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infolists.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos_hashtable.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_plugins_priority.it.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_url_options.it.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.it.html"
)
+12
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.ja.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.ja.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.ja.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.ja.html"
)
@@ -74,6 +78,14 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.ja.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_completions.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_config_priority.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_hdata.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infolists.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos_hashtable.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_plugins_priority.ja.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_url_options.ja.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.ja.html"
)
+4
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.pl.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.pl.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.pl.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.pl.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.pl.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.pl.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.pl.html"
)
+12
View File
@@ -60,6 +60,10 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/weechat_user.sr.adoc
${CMAKE_CURRENT_SOURCE_DIR}/includes/cmdline_options.sr.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_commands.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_default_aliases.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_irc_colors.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_user_options.sr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_user.sr.html"
)
@@ -74,6 +78,14 @@ if(ENABLE_DOC)
${CMAKE_CURRENT_SOURCE_DIR}/../docinfo.html
${CMAKE_CURRENT_SOURCE_DIR}/weechat_plugin_api.sr.adoc
doc-autogen
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_completions.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_config_priority.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_hdata.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infolists.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_infos_hashtable.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_plugins_priority.sr.adoc
${CMAKE_CURRENT_BINARY_DIR}/../autogen/autogen_api_url_options.sr.adoc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building weechat_plugin_api.sr.html"
)
+118 -80
View File
@@ -23,16 +23,19 @@
#include "config.h"
#endif
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libintl.h>
#include <locale.h>
#include <gcrypt.h>
#include "weechat.h"
#include "wee-arraylist.h"
#include "wee-command.h"
#include "wee-config-file.h"
#include "wee-crypto.h"
#include "wee-dir.h"
#include "wee-hashtable.h"
#include "wee-hdata.h"
@@ -89,12 +92,9 @@ doc_gen_open_file (const char *path, const char *doc, const char *name,
FILE *file;
snprintf (filename, sizeof (filename),
"%s%s" "autogen_%s_%s.%s.adoc",
"%s%s" "autogen_%s_%s.%s.adoc.temp",
path, DIR_SEPARATOR, doc, name, lang);
if (weechat_debug_core >= 1)
printf ("Writing: %s\n", filename);
file = fopen (filename, "wb");
if (!file)
{
@@ -115,6 +115,54 @@ doc_gen_open_file (const char *path, const char *doc, const char *name,
return file;
}
/*
* Closes the file and renames it without ".temp" suffix, if the target name
* does not exist of if it exists with a different (obsolete) content.
*
* If the target name exists with same content it's kept as-is (so the
* timestamp does not change) and the temporary file is just deleted.
*
* Returns:
* 1: target file has been updated
* 0: target file unchanged
* -1: error
*/
int
doc_gen_close_file (const char *path, const char *doc, const char *name,
const char *lang, FILE *file)
{
char filename_temp[PATH_MAX], filename[PATH_MAX];
char hash_temp[512 / 8], hash[512 / 8];
int rc_temp, rc;
fclose (file);
snprintf (filename_temp, sizeof (filename_temp),
"%s%s" "autogen_%s_%s.%s.adoc.temp",
path, DIR_SEPARATOR, doc, name, lang);
snprintf (filename, sizeof (filename),
"%s%s" "autogen_%s_%s.%s.adoc",
path, DIR_SEPARATOR, doc, name, lang);
rc_temp = weecrypto_hash_file (filename_temp, GCRY_MD_SHA512,
&hash_temp, NULL);
if (!rc_temp)
return -1;
rc = weecrypto_hash_file (filename, GCRY_MD_SHA512, &hash, NULL);
if (!rc || (memcmp (hash_temp, hash, sizeof (hash)) != 0))
{
rename (filename_temp, filename);
return 1;
}
unlink (filename_temp);
return 0;
}
/*
* Checks if a command must be documented or not.
*
@@ -169,8 +217,9 @@ doc_gen_hook_command_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with commands.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -185,7 +234,7 @@ doc_gen_user_commands (const char *path, const char *lang)
file = doc_gen_open_file (path, "user", "commands", lang);
if (!file)
return 0;
return -1;
list_hooks = arraylist_new (64, 1, 0,
&doc_gen_hook_command_cmp_cb, NULL,
@@ -306,9 +355,7 @@ doc_gen_user_commands (const char *path, const char *lang)
arraylist_free (list_hooks);
fclose (file);
return 1;
return doc_gen_close_file (path, "user", "commands", lang, file);
}
/*
@@ -374,8 +421,9 @@ doc_gen_option_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with commands.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -392,7 +440,7 @@ doc_gen_user_options (const char *path, const char *lang)
file = doc_gen_open_file (path, "user", "options", lang);
if (!file)
return 0;
return -1;
list_options = arraylist_new (64, 1, 0,
&doc_gen_option_cmp_cb, NULL,
@@ -537,17 +585,16 @@ doc_gen_user_options (const char *path, const char *lang)
arraylist_free (list_options);
fclose (file);
return 1;
return doc_gen_close_file (path, "user", "options", lang, file);
}
/*
* Generates files with default aliases.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -559,7 +606,7 @@ doc_gen_user_default_aliases (const char *path, const char *lang)
file = doc_gen_open_file (path, "user", "default_aliases", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -589,17 +636,16 @@ doc_gen_user_default_aliases (const char *path, const char *lang)
"|===\n"
"// end::default_aliases[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "user", "default_aliases", lang, file);
}
/*
* Generates files with IRC colors.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -610,7 +656,7 @@ doc_gen_user_irc_colors (const char *path, const char *lang)
file = doc_gen_open_file (path, "user", "irc_colors", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -637,9 +683,7 @@ doc_gen_user_irc_colors (const char *path, const char *lang)
"|===\n"
"// end::irc_colors[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "user", "irc_colors", lang, file);
}
/*
@@ -672,8 +716,9 @@ doc_gen_hook_info_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with infos.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -686,7 +731,7 @@ doc_gen_api_infos (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "infos", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -727,9 +772,7 @@ doc_gen_api_infos (const char *path, const char *lang)
"|===\n"
"// end::infos[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "infos", lang, file);
}
/*
@@ -762,8 +805,9 @@ doc_gen_hook_info_hashtable_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with infos_hashtable.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -776,7 +820,7 @@ doc_gen_api_infos_hashtable (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "infos_hashtable", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -819,9 +863,7 @@ doc_gen_api_infos_hashtable (const char *path, const char *lang)
"|===\n"
"// end::infos_hashtable[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "infos_hashtable", lang, file);
}
/*
@@ -854,8 +896,9 @@ doc_gen_hook_infolist_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with infolists.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -868,7 +911,7 @@ doc_gen_api_infolists (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "infolists", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -911,9 +954,7 @@ doc_gen_api_infolists (const char *path, const char *lang)
"|===\n"
"// end::infolists[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "infolists", lang, file);
}
/*
@@ -1141,8 +1182,9 @@ doc_gen_api_hdata_content (FILE *file, struct t_hdata *hdata)
* Generates files with hdata.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -1157,7 +1199,7 @@ doc_gen_api_hdata (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "hdata", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -1211,9 +1253,7 @@ doc_gen_api_hdata (const char *path, const char *lang)
"|===\n"
"// end::hdata[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "hdata", lang, file);
}
/*
@@ -1246,8 +1286,9 @@ doc_gen_hook_completion_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with completions.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -1260,7 +1301,7 @@ doc_gen_api_completions (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "completions", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -1299,17 +1340,16 @@ doc_gen_api_completions (const char *path, const char *lang)
"|===\n"
"// end::completions[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "completions", lang, file);
}
/*
* Generates files with URL options.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -1321,7 +1361,7 @@ doc_gen_api_url_options (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "url_options", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -1364,9 +1404,7 @@ doc_gen_api_url_options (const char *path, const char *lang)
"|===\n"
"// end::url_options[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "url_options", lang, file);
}
/*
@@ -1397,8 +1435,9 @@ doc_gen_plugin_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with plugins priority.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -1411,7 +1450,7 @@ doc_gen_api_plugins_priority (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "plugins_priority", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -1451,9 +1490,7 @@ doc_gen_api_plugins_priority (const char *path, const char *lang)
"|===\n"
"// end::plugins_priority[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "plugins_priority", lang, file);
}
/*
@@ -1484,8 +1521,9 @@ doc_gen_config_cmp_cb (void *data, struct t_arraylist *arraylist,
* Generates files with config priority.
*
* Returns:
* 1: OK
* 0: error
* 1: OK, target file updated
* 0: OK, target file unchanged
* -1: error
*/
int
@@ -1498,7 +1536,7 @@ doc_gen_api_config_priority (const char *path, const char *lang)
file = doc_gen_open_file (path, "api", "config_priority", lang);
if (!file)
return 0;
return -1;
string_fprintf (
file,
@@ -1538,9 +1576,7 @@ doc_gen_api_config_priority (const char *path, const char *lang)
"|===\n"
"// end::config_priority[]\n");
fclose (file);
return 1;
return doc_gen_close_file (path, "api", "config_priority", lang, file);
}
/*
@@ -1622,14 +1658,16 @@ doc_generate (const char *path)
for (j = 0; doc_gen_functions[j]; j++)
{
rc = (int) (doc_gen_functions[j] (path, lang));
if (!rc)
if (rc < 0)
goto end;
num_files++;
num_files += rc;
}
}
printf ("doc generator: build OK: %d files written in %s\n",
num_files, path);
if (num_files > 0)
printf ("doc generator: OK, %d files updated\n", num_files);
else
printf ("doc generator: OK, no changes\n");
rc_doc_gen = 1;