Tk Source Code

Check-in [4d4b4f25]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:nmakehlp: Add "-V<num>" option, in order to be able to detect partial version numbers.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 4d4b4f25e44335acf4bbdfa15d5cf7ca7f351883
User & Date: jan.nijtmans 2012-08-17 10:27:21
Context
2012-08-23
21:41
3554026,3561016 Stop crash with tearoff menus. check-in: 2163407f user: dgp tags: core-8-5-branch
2012-08-17
10:28
nmakehlp: Add "-V<num>" option, in order to be able to detect partial version numbers check-in: 4fd48a3c user: jan.nijtmans tags: trunk
10:27
nmakehlp: Add "-V<num>" option, in order to be able to detect partial version numbers. check-in: 4d4b4f25 user: jan.nijtmans tags: core-8-5-branch
07:50
nmakehlp: Add "-V<num>" option, in order to be able to detect partial version numbers. check-in: ccc54f7f user: jan.nijtmans tags: core-8-4-branch
2012-08-15
13:33
Backport some more improvements from Tcl 8.6 check-in: 4fdc7985 user: jan.nijtmans tags: core-8-5-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.






1
2
3
4
5
6
7





2012-08-15  Jan Nijtmans  <[email protected]>

	* win/buildall.vc.bat: Only build the threaded builds by default
	* win/rules.vc:        Backport some improvements from Tcl 8.6
	* win/makefile.vc:

2012-08-11  Francois Vogel  <[email protected]>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2012-08-17  Jan Nijtmans  <[email protected]>

	* win/nmakehlp.c: Add "-V<num>" option, in order to be able
	to detect partial version numbers.

2012-08-15  Jan Nijtmans  <[email protected]>

	* win/buildall.vc.bat: Only build the threaded builds by default
	* win/rules.vc:        Backport some improvements from Tcl 8.6
	* win/makefile.vc:

2012-08-11  Francois Vogel  <[email protected]>

Changes to win/nmakehlp.c.

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* protos */

static int CheckForCompilerFeature(const char *option);
static int CheckForLinkerFeature(const char *option);
static int IsIn(const char *string, const char *substring);
static int SubstituteFile(const char *substs, const char *filename);
static int QualifyPath(const char *path);
static const char *GetVersionFromFile(const char *filename, const char *match);
static DWORD WINAPI ReadFromPipe(LPVOID args);

/* globals */

#define CHUNK	25
#define STATICBUFFERSIZE    1000
typedef struct {







|







43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* protos */

static int CheckForCompilerFeature(const char *option);
static int CheckForLinkerFeature(const char *option);
static int IsIn(const char *string, const char *substring);
static int SubstituteFile(const char *substs, const char *filename);
static int QualifyPath(const char *path);
static const char *GetVersionFromFile(const char *filename, const char *match, int numdots);
static DWORD WINAPI ReadFromPipe(LPVOID args);

/* globals */

#define CHUNK	25
#define STATICBUFFERSIZE    1000
typedef struct {
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
		    "Extract a version from a file:\n"
		    "eg: pkgIndex.tcl \"package ifneeded http\"",
		    argv[0]);
		WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars,
		    &dwWritten, NULL);
		return 0;
	    }
	    printf("%s\n", GetVersionFromFile(argv[2], argv[3]));
	    return 0;
	case 'Q':
	    if (argc != 3) {
		chars = snprintf(msg, sizeof(msg) - 1,
		    "usage: %s -Q path\n"
		    "Emit the fully qualified path\n"
		    "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]);







|







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
		    "Extract a version from a file:\n"
		    "eg: pkgIndex.tcl \"package ifneeded http\"",
		    argv[0]);
		WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, chars,
		    &dwWritten, NULL);
		return 0;
	    }
	    printf("%s\n", GetVersionFromFile(argv[2], argv[3], *(argv[1]+2) - '0'));
	    return 0;
	case 'Q':
	    if (argc != 3) {
		chars = snprintf(msg, sizeof(msg) - 1,
		    "usage: %s -Q path\n"
		    "Emit the fully qualified path\n"
		    "exitcodes: 0 == no, 1 == yes, 2 == error\n", argv[0]);
475
476
477
478
479
480
481
482

483
484
485
486
487
488
489
 * 	following the match where a version is anything acceptable to
 * 	package provide or package ifneeded.
 */

static const char *
GetVersionFromFile(
    const char *filename,
    const char *match)

{
    size_t cbBuffer = 100;
    static char szBuffer[100];
    char *szResult = NULL;
    FILE *fp = fopen(filename, "rt");

    if (fp != NULL) {







|
>







475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
 * 	following the match where a version is anything acceptable to
 * 	package provide or package ifneeded.
 */

static const char *
GetVersionFromFile(
    const char *filename,
    const char *match,
    int numdots)
{
    size_t cbBuffer = 100;
    static char szBuffer[100];
    char *szResult = NULL;
    FILE *fp = fopen(filename, "rt");

    if (fp != NULL) {
505
506
507
508
509
510
511
512

513
514
515
516
517
518
519
		}

		/*
		 * Find ending whitespace.
		 */

		q = p;
		while (*q && (isalnum(*q) || *q == '.')) {

		    ++q;
		}

		memcpy(szBuffer, p, q - p);
		szBuffer[q-p] = 0;
		szResult = szBuffer;
		break;







|
>







506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
		}

		/*
		 * Find ending whitespace.
		 */

		q = p;
		while (*q && (strchr("0123456789.ab", *q)) && ((!strchr(".ab", *q)
			    && (!strchr("ab", q[-1])) || --numdots))) {
		    ++q;
		}

		memcpy(szBuffer, p, q - p);
		szBuffer[q-p] = 0;
		szResult = szBuffer;
		break;