2015-07-14

Build Tix extension package

Tix Widget Set for Tk/Tcl and Python


使用 MSYS/MINGW 來編譯。在 make 的時候發現編譯 tixGrSort.c 會發生錯誤。觀察錯誤訊息以後,應該是要設 flag 否則在 Tcl 8.6,無法直接使用 Tcl_Interp member result。

typedef struct Tcl_Interp
#ifndef TCL_NO_DEPRECATED
{
    /* TIP #330: Strongly discourage extensions from using the string
     * result. */
#ifdef USE_INTERP_RESULT
    char *result TCL_DEPRECATED_API("use Tcl_GetStringResult/Tcl_SetResult");
                /* If the last command returned a string
                 * result, this points to it. */
    void (*freeProc) (char *blockPtr)
        TCL_DEPRECATED_API("use Tcl_GetStringResult/Tcl_SetResult");
                /* Zero means the string result is statically
                 * allocated. TCL_DYNAMIC means it was
                 * allocated with ckalloc and should be freed
                 * with ckfree. Other values give the address
                 * of function to invoke to free the result.
                 * Tcl_Eval must free it before executing next
                 * command. */
#else
    char *resultDontUse; /* Don't use in extensions! */
    void (*freeProcDontUse) (char *); /* Don't use in extensions! */
#endif
#ifdef USE_INTERP_ERRORLINE
    int errorLine TCL_DEPRECATED_API("use Tcl_GetErrorLine/Tcl_SetErrorLine");
                /* When TCL_ERROR is returned, this gives the
                 * line number within the command where the
                 * error occurred (1 if first line). */
#else
    int errorLineDontUse; /* Don't use in extensions! */
#endif
}
#endif /* TCL_NO_DEPRECATED */
Tcl_Interp;

所以我把 source code 改寫為下列的樣子,只是不知道改的對不對。
    order = strtol(Tcl_GetStringResult(sortInterp), &end, 0);
    if ((end == Tcl_GetStringResult(sortInterp)) || (*end != 0)) {

2015-07-10

TLS 1.6.7 與 OpenSSL

TLS 1.6.7 與 OpenSSL 的更新都在最近這一、二天釋出。

TLS 釋出了新版,版本號為 1.6.7。

另外一方面,OpenSSL專案小組近日緊急預告,將於7月9日釋出OpenSSL 1.0.2d和1.0.1p新版,來修補一個高風險漏洞。(新聞:記得要更新!OpenSSL又爆罕見高風險漏洞,官網預告7月9日釋修補)所以如果使用 1.0.2 與 1.0.1 版本 OpenSSL 的使用者需要更新到新版才行。