#include<stdio.h>
#include<windows.h>
int main(void){
/*Delete changelog.txt*/
FILE *plik;
/*Print text and flush*/
printf("Downloading changelog.txt...\n\n"); /*Determine if there's wget.exe, if not, exit, else download changelog.txt*/
if ((plik
=fopen("wget.exe", "r"))==NULL
){ printf("wget.exe not found. Please obtain it and rerun Updater.\n\n"); } else {
system("wget.exe http://o...content-available-to-author-only...t.com/changelog.txt -q"); }
/*Parse the changelog.txt*/
double a;
plik
= fopen("changelog.txt","r"); int newver = a*1000 + 0.5;
/*Print text and flush*/
printf("Newest version: %i\n\n",newver
); printf("Checking current version of OBS...\n\n"); /*Check current version of OBS by parsing global.ini*/
char *appdata
= getenv("APPDATA"); snprintf(path1
,249,"%s/OBS/Global.ini",appdata
); int currver = GetPrivateProfileInt("General","LastAppVersion","error while reading",path1);
/*Convert decimal to hexadecimal*/
char hx[256];
int decVal = currver;
/*Print text and flush*/
printf("Current version: %s\n\n",hx
); /*Compare versions*/
if (newver > x){
/*Download newest version*/
printf("Update available!\n\n"); /*system("wget.exe http://s...content-available-to-author-only...e.net/projects/obsproject/files/latest/download -q");
printf("Downloaded.");
fflush(stdout);*/
} else {
/*Print text and flush*/
printf("OBS up to date!\n\n"); }
printf("Press any key to continue...\n\n"); return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8d2luZG93cy5oPgppbnQgbWFpbih2b2lkKXsKICAgIC8qRGVsZXRlIGNoYW5nZWxvZy50eHQqLwogICAgRklMRSAqcGxpazsKICAgIHJlbW92ZSgiY2hhbmdlbG9nLnR4dCIpOwogICAgLypQcmludCB0ZXh0IGFuZCBmbHVzaCovCiAgICBwcmludGYoIkRvd25sb2FkaW5nIGNoYW5nZWxvZy50eHQuLi5cblxuIik7CiAgICBmZmx1c2goc3Rkb3V0KTsKICAgIC8qRGV0ZXJtaW5lIGlmIHRoZXJlJ3Mgd2dldC5leGUsIGlmIG5vdCwgZXhpdCwgZWxzZSBkb3dubG9hZCBjaGFuZ2Vsb2cudHh0Ki8KICAgIGlmICgocGxpaz1mb3Blbigid2dldC5leGUiLCAiciIpKT09TlVMTCl7CiAgICAgICAgcHJpbnRmKCJ3Z2V0LmV4ZSBub3QgZm91bmQuIFBsZWFzZSBvYnRhaW4gaXQgYW5kIHJlcnVuIFVwZGF0ZXIuXG5cbiIpOwogICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgICAgIGZjbG9zZShwbGlrKTsKICAgICAgICBleGl0KDEpOwogICAgfSBlbHNlIHsKICAgICAgICBmY2xvc2UocGxpayk7CiAgICAgICAgc3lzdGVtKCJ3Z2V0LmV4ZSBodHRwOi8vby4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4udC5jb20vY2hhbmdlbG9nLnR4dCAtcSIpOwogICAgICAgIHByaW50ZigiRG93bmxvYWRlZC5cblxuIik7CiAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICB9CiAgICAvKlBhcnNlIHRoZSBjaGFuZ2Vsb2cudHh0Ki8KICAgIGRvdWJsZSBhOwogICAgcGxpayA9IGZvcGVuKCJjaGFuZ2Vsb2cudHh0IiwiciIpOwogICAgZnNjYW5mKHBsaWssICIlbGYiLCZhKTsKICAgIGZjbG9zZShwbGlrKTsKICAgIGludCBuZXd2ZXIgPSBhKjEwMDAgKyAwLjU7CiAgICAvKlByaW50IHRleHQgYW5kIGZsdXNoKi8KICAgIHByaW50ZigiTmV3ZXN0IHZlcnNpb246ICVpXG5cbiIsbmV3dmVyKTsKICAgIGZmbHVzaChzdGRvdXQpOwogICAgcHJpbnRmKCJDaGVja2luZyBjdXJyZW50IHZlcnNpb24gb2YgT0JTLi4uXG5cbiIpOwogICAgZmZsdXNoKHN0ZG91dCk7CiAgICAvKkNoZWNrIGN1cnJlbnQgdmVyc2lvbiBvZiBPQlMgYnkgcGFyc2luZyBnbG9iYWwuaW5pKi8KICAgIGNoYXIgKmFwcGRhdGEgPSBnZXRlbnYoIkFQUERBVEEiKTsKICAgIGNoYXIgKnBhdGgxID0gbWFsbG9jKDI1MCk7CiAgICBzbnByaW50ZihwYXRoMSwyNDksIiVzL09CUy9HbG9iYWwuaW5pIixhcHBkYXRhKTsKICAgIGludCBjdXJydmVyID0gR2V0UHJpdmF0ZVByb2ZpbGVJbnQoIkdlbmVyYWwiLCJMYXN0QXBwVmVyc2lvbiIsImVycm9yIHdoaWxlIHJlYWRpbmciLHBhdGgxKTsKICAgIGZyZWUocGF0aDEpOwogICAgLypDb252ZXJ0IGRlY2ltYWwgdG8gaGV4YWRlY2ltYWwqLwogICAgY2hhciBoeFsyNTZdOwogICAgaW50IGRlY1ZhbCA9IGN1cnJ2ZXI7CiAgICBzcHJpbnRmKGh4LCIleCIsZGVjVmFsKTsKICAgIC8qUHJpbnQgdGV4dCBhbmQgZmx1c2gqLwogICAgcHJpbnRmKCJDdXJyZW50IHZlcnNpb246ICVzXG5cbiIsaHgpOwogICAgZmZsdXNoKHN0ZG91dCk7CiAgICBpbnQgeCA9IGF0b2koaHgpOwogICAgLypDb21wYXJlIHZlcnNpb25zKi8KICAgIGlmIChuZXd2ZXIgPiB4KXsKICAgICAgICAvKkRvd25sb2FkIG5ld2VzdCB2ZXJzaW9uKi8KICAgICAgICBwcmludGYoIlVwZGF0ZSBhdmFpbGFibGUhXG5cbiIpOwogICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgICAgIC8qc3lzdGVtKCJ3Z2V0LmV4ZSBodHRwOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5uZXQvcHJvamVjdHMvb2JzcHJvamVjdC9maWxlcy9sYXRlc3QvZG93bmxvYWQgLXEiKTsKICAgICAgICBwcmludGYoIkRvd25sb2FkZWQuIik7CiAgICAgICAgZmZsdXNoKHN0ZG91dCk7Ki8KICAgIH0gZWxzZSB7CiAgICAgICAgLypQcmludCB0ZXh0IGFuZCBmbHVzaCovCiAgICAgICAgcHJpbnRmKCJPQlMgdXAgdG8gZGF0ZSFcblxuIik7CiAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICB9CiAgICBwcmludGYoIlByZXNzIGFueSBrZXkgdG8gY29udGludWUuLi5cblxuIik7CiAgICBmZmx1c2goc3Rkb3V0KTsKICAgIGdldGNoYXIoKTsKICAgIHJldHVybiAwOwp9