Skip to content
Snippets Groups Projects
Commit 76049a36 authored by Luigi Scarso's avatar Luigi Scarso
Browse files

Sync with texlive/tags/texlive-2024.0 (missed some files)

parent 3c0e33c0
Branches
Tags 1.18.0
No related merge requests found
$Id: README.md 69740 2024-02-07 22:39:31Z karl $
This README.md file exists for people browsing on github.
The TeX-Live project on github (https://github.com/TeX-Live) is a mirror
of the upstream Subversion repository (https://tug.org/texlive/svn). We
use it primarily for automatic building of the sources on several platforms.
We prefer using mailing lists to github: tex-live@tug.org for general
bugs and discussion, tex-k@tug.org for bugs and patches for the compiled
programs, and so on. List of TL lists: https://tug.org/texlive/lists.html.
However, if you prefer to open issues or submit PRs on github, that's
ok. We will see them and will reply as soon as we can.
One common problem: Package bug reports should go to the package
maintainer, however they wish to receive reports, not to any general
TeX Live list. TL redistributes what is uploaded to CTAN without changes.
For information about the source tree here, see the ./README file here,
not this README.md.
This diff is collapsed.
This program can be used to prevent doomed TeX Live update attempts
on windows by testing whether all files concerned can be opened with
exclusive read/write access.
It reads a list of absolute filepaths from stdin and errors out if
any of them cannot be opened with exclusive read/write access.
A -v option also produces status output on stdout.
Cross-compiling under linux:
i686-w64-mingw32-gcc -o wtestopenfiles.exe wtestopenfiles.c
i686-w64-mingw32-strip wtestopenfiles.exe
/***********************************************************
This program tries to prevent doomed update attempts on windows by testing
whether all files concerned can be opened with exclusive read/write access.
This file is written in 2022 by Siep Kroonenberg and is placed
in the Public Domain.
***********************************************************/
#include <windows.h>
#include <stdio.h>
int main( int argc, char *argv[] ) {
HANDLE hf;
char buf[MAX_PATH];
int ok = 1;
int chatty = 0;
int i;
if( argc > 1 ) {
for( i=1;i<argc;i++ ) {
if( argv[i][1] == 'v' ) {
chatty = 1;
} else {
puts( "This program reads a list of absolute filepaths from stdin" );
puts( "and errors out if any of them cannot be opened with" );
puts( "exclusive read/write access." );
puts( "A -v option produces status output on stdout." );
exit( 1 );
}
}
}
while ( fgets( buf, MAX_PATH, stdin )) {
buf[strlen(buf)-1] = '\0';
if (buf[0] != '\0') {
// buf represents a filepath
hf = CreateFile(
buf,
GENERIC_READ | GENERIC_WRITE,
0, // not shared
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
// OPEN_ALWAYS: creates missing file
// OPEN_EXISTING: can fail with ERROR_FILE_NOT_FOUND
if( hf == INVALID_HANDLE_VALUE ) {
if( GetLastError() == ERROR_FILE_NOT_FOUND ) {
if( chatty ) printf( "%s not present, is ok\n", buf );
continue;
} else {
ok = 0;
if( chatty ) printf( "%s present, but cannot be opened\n", buf );
break;
}
} else {
if( chatty ) printf( "%s can be exclusively opened, is ok\n", buf );
CloseHandle( hf );
}
}
}
if( ok ) {
if( chatty ) puts( "ok" );
exit(0);
} else {
if( chatty ) puts( "not ok" );
exit( 1 );
}
}
This diff is collapsed.
#ifndef luatex_svn_revision_h #ifndef luatex_svn_revision_h
#define luatex_svn_revision_h #define luatex_svn_revision_h
#define luatex_svn_revision 7612 #define luatex_svn_revision 7613
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment