RFC: Alternative for exemaker

Adrian Buehlmann adrian at cadifra.com
Sat Jun 23 01:49:00 CDT 2012


On 2012-06-22 23:55, Adrian Buehlmann wrote:
> Perhaps I'll start doing that. From scratch. Of course heavily inspired
> by exemaker.

Done: https://bitbucket.org/abuehl/hgexe/src

Python27 hg.exe's are at:
https://bitbucket.org/abuehl/hgexe/downloads

https://bitbucket.org/abuehl/hgexe/src/e4c4b6663c29/hg.c
looks pretty simple:

<paste>
/*
 hg.c - wrapper for calling mercurial on Windows

 Copyright 2012 Adrian Buehlmann <adrian at cadifra.com>

 This software may be used and distributed according to the terms of the
 GNU General Public License version 2 or any later version.
*/

#include <Python.h>

#include <windows.h>
#include <Shlwapi.h>

#define _NUM_ARGS 100

static char exename[1000];
static char scriptname[1000];
static char *pyargv[_NUM_ARGS + 10];

int main(int argc, char *argv[])
{
	int ret;
	int i;

	GetModuleFileName(NULL, exename, sizeof(exename));

	strncpy_s(scriptname, sizeof(scriptname), exename, sizeof(exename));
	PathRemoveFileSpec(scriptname);
	strcat_s(scriptname, sizeof(scriptname), "\\hg.py");

	pyargv[0] = exename;
	pyargv[1] = scriptname;
	for (i = 1; i < argc; i++) {
		if (i > _NUM_ARGS) {
			fprintf(stderr, "abort: too many arguments\n");
			return 255;
		}
		pyargv[1 + i] = argv[i];
	}

	Py_Initialize();
	ret = Py_Main(1 + i, pyargv);
	Py_Finalize();
	return ret;
}

</paste>


More information about the Mercurial-devel mailing list