Tcl Source Code

Check-in [e3cb60581f]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Sep 9.

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

Overview
Comment:Merge 8.6
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-branch
Files: files | file ages | folders
SHA3-256:e3cb60581fd70c9d1eeccc47ea9d666b54e48e8835d9381d95f3d24298e50425
User & Date: jan.nijtmans 2018-08-17 22:21:12
Context
2018-08-29
17:01
merge 8.6 check-in: 9f791c2d99 user: sebres tags: core-8-branch
2018-08-28
18:59
merge core-8-branch check-in: 364e4f0003 user: jan.nijtmans tags: trunk
2018-08-26
11:07
merge core-8-branch Closed-Leaf check-in: c253e68a51 user: dkf tags: tip-478
2018-08-19
09:33
Re-base branch "all-wideint" to core-8-branch. Still WIP check-in: 4932848e36 user: jan.nijtmans tags: tip-514
2018-08-17
22:21
Merge 8.6 check-in: e3cb60581f user: jan.nijtmans tags: core-8-branch
22:15
Minor fix to entier(): Allow it to convert to "wideInt" as well when range is appropriate check-in: d7d65c2ac3 user: jan.nijtmans tags: core-8-6-branch
2018-08-14
05:43
Reposition the MODULE_SCOPE definition so that packages like tbcload don't get an error when they in... check-in: 7e7c72ccc9 user: pooryorick tags: core-8-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclBasic.c.

7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
    }
    if (TclGetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
	return TCL_ERROR;
    }

    if (type == TCL_NUMBER_DOUBLE) {
	d = *((const double *) ptr);
	if ((d >= (double)LONG_MAX) || (d <= (double)LONG_MIN)) {
	    mp_int big;

	    if (Tcl_InitBignumFromDouble(interp, d, &big) != TCL_OK) {
		/* Infinity */
		return TCL_ERROR;
	    }
	    Tcl_SetObjResult(interp, Tcl_NewBignumObj(&big));
	    return TCL_OK;
	} else {
	    long result = (long) d;

	    Tcl_SetObjResult(interp, Tcl_NewLongObj(result));
	    return TCL_OK;
	}
    }

    if (type != TCL_NUMBER_NAN) {
	/*
	 * All integers are already of integer type.







|









|

|







7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
    }
    if (TclGetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
	return TCL_ERROR;
    }

    if (type == TCL_NUMBER_DOUBLE) {
	d = *((const double *) ptr);
	if ((d >= (double)LLONG_MAX) || (d <= (double)LLONG_MIN)) {
	    mp_int big;

	    if (Tcl_InitBignumFromDouble(interp, d, &big) != TCL_OK) {
		/* Infinity */
		return TCL_ERROR;
	    }
	    Tcl_SetObjResult(interp, Tcl_NewBignumObj(&big));
	    return TCL_OK;
	} else {
	    Tcl_WideInt result = (Tcl_WideInt) d;

	    Tcl_SetObjResult(interp, Tcl_NewWideIntObj(result));
	    return TCL_OK;
	}
    }

    if (type != TCL_NUMBER_NAN) {
	/*
	 * All integers are already of integer type.