1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2011,2013 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 #define MAX_ERROR_STR_SIZE 512
24 extern "C" char g_last_error
[MAX_ERROR_STR_SIZE
]={0};
25 extern "C" int close_all();
26 static int dyingRecCnt
= 0;
28 extern "C" void die_dll(const char *err
, va_list params
)
30 memset(g_last_error
,0,MAX_ERROR_STR_SIZE
);
31 vsnprintf(g_last_error
, MAX_ERROR_STR_SIZE
-1, err
, params
);
37 void die(const char *err
, ...)
41 va_start(params
, err
);
46 extern "C" void vc_exit(int code
)
48 if (strlen(g_last_error
))
50 char old_err
[MAX_ERROR_STR_SIZE
];
51 memcpy(old_err
, g_last_error
, MAX_ERROR_STR_SIZE
);
52 die("libgit called \"exit(%d)\". Last error was:\n%s", code
, old_err
);
55 die("libgit called \"exit(%d)\".", code
);
58 extern "C" int die_is_recursing_dll()