summaryrefslogtreecommitdiff
path: root/version.sh.c
diff options
context:
space:
mode:
Diffstat (limited to 'version.sh.c')
-rw-r--r--version.sh.c215
1 files changed, 0 insertions, 215 deletions
diff --git a/version.sh.c b/version.sh.c
deleted file mode 100644
index f08d3b460..000000000
--- a/version.sh.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* version file handler for win32.
- *
- * (C) 2003 Anope Team
- * Contact us at info@anope.org
- *
- * Please read COPYING and README for furhter details.
- *
- * Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
- * Written by Dominick Meglio <codemastr@unrealircd.com>
- *
- */
-
-/* Needed due to Windows lack of a decent interpreter */
-
-#include <stdio.h>
-#include <string.h>
-
-#define CTRL "version.log"
-
-long version_major, version_minor, version_patch, version_build, build;
-char *version_extra;
-char version[1024];
-
-
-void load_ctrl(FILE *);
-long get_value(char *);
-char *get_value_str(char *);
-char *strip(char *);
-void parse_version(FILE *);
-void write_version(FILE *);
-void parse_line(FILE *, char *);
-
-int main()
-{
- FILE *fd = fopen(CTRL, "r");
-
-
- if (!fd) {
- fprintf(stderr, "Error: Unable to find control file: " CTRL "\n");
- exit(0);
- }
-
- load_ctrl(fd);
- fclose(fd);
-
- _snprintf(version, 1024, "%d.%d.%d%s", version_major, version_minor,
- version_patch, version_extra ? version_extra : "");
-
-
- fd = fopen("version.h", "r");
-
- if (fd) {
- parse_version(fd);
- fclose(fd);
- } else
- build = 1;
-
-
- fd = fopen("version.h", "w");
- write_version(fd);
- fclose(fd);
-}
-
-void load_ctrl(FILE * fd)
-{
- char buf[512];
- while (fgets(buf, 511, fd)) {
- char *var;
-
- strip(buf);
-
- var = strtok(buf, "=");
- if (!var)
- continue;
- if (!strcmp(var, "VERSION_MAJOR"))
- version_major = get_value(strtok(NULL, ""));
- else if (!strcmp(var, "VERSION_MINOR"))
- version_minor = get_value(strtok(NULL, ""));
- else if (!strcmp(var, "VERSION_PATCH"))
- version_patch = get_value(strtok(NULL, ""));
- else if (!strcmp(var, "VERSION_BUILD"))
- version_build = get_value(strtok(NULL, ""));
- else if (!strcmp(var, "VERSION_EXTRA"))
- version_extra = get_value_str(strtok(NULL, ""));
-
- }
-}
-
-char *strip(char *str)
-{
- char *c;
- if ((c = strchr(str, '\n')))
- *c = 0;
- if ((c = strchr(str, '\r')))
- *c = 0;
- return str;
-}
-
-long get_value(char *string)
-{
- return atol(get_value_str(string));
-}
-
-char *get_value_str(char *string)
-{
- int len;
-
- if (*string == '"')
- string++;
-
- len = strlen(string);
-
- if (string[len - 1] == '"')
- string[len - 1] = 0;
- if (!*string)
- return NULL;
- return string;
-}
-
-void parse_version(FILE * fd)
-{
- char buf[1024];
-
- while (fgets(buf, 1023, fd)) {
- char *para1;
-
- strip(buf);
- para1 = strtok(buf, " \t");
-
- if (!para1)
- continue;
-
- if (!strcmp(para1, "#define")) {
- char *para2 = strtok(NULL, " \t");
-
- if (!para2)
- continue;
-
- if (!strcmp(para2, "BUILD")) {
- char *value = strtok(NULL, "");
- build = get_value(value);
- build++;
- return;
- }
- }
- }
- build = 1;
-}
-
-void write_version(FILE * fd)
-{
- FILE *fdin = fopen("version.sh", "r");
- char buf[1024];
- short until_eof = 0;
-
- while (fgets(buf, 1023, fdin)) {
- strip(buf);
-
- if (until_eof)
- if (!strcmp(buf, "EOF"))
- break;
- else
- parse_line(fd, buf);
-
- if (!strcmp(buf, "cat >version.h <<EOF"))
- until_eof = 1;
- }
-
-}
-
-void parse_line(FILE * fd, char *line)
-{
- char *c;
- for (c = line; *c; c++) {
- /* It's a variable, find out which */
- if (*c == '$') {
- char *var, *varbegin;
-
- if (*(c + 1))
- c++;
- else
- continue;
- for (var = varbegin = c; var; var++) {
- if (!isalnum(*var) && *var != '_')
- break;
- }
- if (var != varbegin) {
- char tmp = *var;
-
- *var = 0;
- if (!strcmp(varbegin, "VERSION_MAJOR"))
- fprintf(fd, "%d", version_major);
- else if (!strcmp(varbegin, "VERSION_MINOR"))
- fprintf(fd, "%d", version_minor);
- else if (!strcmp(varbegin, "VERSION_PATCH"))
- fprintf(fd, "%d", version_patch);
- else if (!strcmp(varbegin, "VERSION_EXTRA")) {
- if (version_extra)
- fprintf(fd, "%s", version_extra);
- } else if (!strcmp(varbegin, "VERSION_BUILD"))
- fprintf(fd, "%d", version_build);
- else if (!strcmp(varbegin, "BUILD"))
- fprintf(fd, "%d", build);
- else if (!strcmp(varbegin, "VERSION"))
- fprintf(fd, "%s", version);
- fputc(tmp, fd);
- }
- c = var;
- } else
- fputc(*c, fd);
- }
- fprintf(fd, "\r\n");
-}