lyx_mirror/development/cygwin/lyxeditor.c
Enrico Forestieri 9da28dca29 Add support for the newly released Cygwin 1.7.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32886 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 16:21:43 +00:00

54 lines
1.3 KiB
C

/**
* \file lyxeditor.c
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Enrico Forestieri
*
* Full author contact details are available in file CREDITS.
*
* This is a wrapper program for the lyxeditor.sh script or lyxclient program,
* meant to be used with yap or sumatrapdf for inverse search.
*/
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <cygwin/version.h>
#include <sys/cygwin.h>
#include <windows.h>
void convert_to_full_posix_path(char const * from, char *to)
{
#if CYGWIN_VERSION_DLL_MAJOR >= 1007
cygwin_conv_path(CCP_WIN_A_TO_POSIX, from, to, PATH_MAX);
#else
cygwin_conv_to_full_posix_path(from, to);
#endif
}
int main(int ac, char **av)
{
char buf[2 * PATH_MAX];
char posixpath[PATH_MAX + 1];
if (ac < 3 || ac > 4) {
MessageBox(0, "Usage: lyxeditor [-g] <file.tex> <lineno>",
"ERROR: Wrong number of arguments", 0);
return 1;
}
if (ac == 3) {
convert_to_full_posix_path(av[1], posixpath);
sprintf(buf, "lyxeditor.sh" PROGRAM_SUFFIX " '%s' %s",
posixpath, av[2]);
} else {
convert_to_full_posix_path(av[2], posixpath);
sprintf(buf, "lyxclient" PROGRAM_SUFFIX " %s '%s' %s",
av[1], posixpath, av[3]);
}
system(buf);
return 0;
}