Ticket #32858: tclreadline.patch

File tclreadline.patch, 3.2 KB (added by gustafn, 12 years ago)

Patch for the source (to be placed into ..../files/tclreadline.patch)

  • tclreadline.

    old new  
    4949static const char* tclrl_version_str = TCLRL_VERSION_STR;
    5050static const char* tclrl_patchlevel_str = TCLRL_PATCHLEVEL_STR;
    5151
    52 #define MALLOC(size) Tcl_Alloc((int) size)
    53 #define FREE(ptr) if (ptr) { Tcl_Free((char*) ptr); ptr = 0; }
    54 
    5552enum {
    5653    _CMD_SET     = (1 << 0),
    5754    _CMD_GET     = (1 << 1)
     
    343340                return TCL_ERROR;
    344341            } else if (3 == objc) {
    345342                if (tclrl_custom_completer)
    346                     FREE(tclrl_custom_completer);
     343                    free(tclrl_custom_completer);
    347344                if (!blank_line(Tcl_GetStringFromObj(objv[2], 0)))
    348345                    tclrl_custom_completer =
    349346                         stripwhite(strdup(Tcl_GetStringFromObj(objv[2], 0)));
     
    378375                return TCL_ERROR;
    379376            } else if (3 == objc) {
    380377                if (tclrl_eof_string)
    381                     FREE(tclrl_eof_string);
     378                    free(tclrl_eof_string);
    382379                if (!blank_line(Tcl_GetStringFromObj(objv[2], 0)))
    383380                    tclrl_eof_string =
    384381                        stripwhite(strdup(Tcl_GetStringFromObj(objv[2], 0)));
     
    544541         * tell the calling routines to terminate.
    545542         */
    546543        TclReadlineTerminate(LINE_COMPLETE);
    547         FREE(ptr);
    548         FREE(expansion);
     544        free(ptr);
     545        free(expansion);
    549546    }
    550547}
    551548
     
    673670            strcpy(rl_line_buffer, expansion);
    674671            rl_end = strlen(expansion);
    675672            rl_point += strlen(expansion) - oldlen;
    676             FREE(expansion);
     673            free(expansion);
    677674            /*
    678675             * TODO:
    679676             * because we return 0 == matches,
     
    682679             */
    683680            return matches;
    684681        }
    685         FREE(expansion);
     682        free(expansion);
    686683    }
    687684
    688685    if (tclrl_custom_completer) {
     
    699696        state = Tcl_VarEval(tclrl_interp, tclrl_custom_completer,
    700697            " \"", quoted_text, "\" ", start_s, " ", end_s,
    701698            " \"", quoted_rl_line_buffer, "\"", (char*) NULL);
    702         FREE(quoted_text);
    703         FREE(quoted_rl_line_buffer);
     699        free(quoted_text);
     700        free(quoted_rl_line_buffer);
    704701        if (TCL_OK != state) {
    705702            Tcl_AppendResult (tclrl_interp, " `", tclrl_custom_completer,
    706703                " \"", quoted_text, "\" ", start_s, " ", end_s,
     
    715712
    716713        if (objc) {
    717714            int i, length;
    718             matches = (char**) MALLOC(sizeof(char*) * (objc + 1));
     715            matches = (char**) malloc(sizeof(char*) * (objc + 1));
    719716            for (i = 0; i < objc; i++) {
    720717                matches[i] = strdup(Tcl_GetStringFromObj(objv[i], &length));
    721718                if (1 == objc && !strlen(matches[i])) {
    722                     FREE(matches[i]);
    723                     FREE(matches);
     719                    free(matches[i]);
     720                    free(matches);
    724721                    Tcl_ResetResult(tclrl_interp); /* clear result space */
    725722                    return (char**) NULL;
    726723                }
     
    735732             */
    736733            if (2 == objc && !strlen(matches[1])) {
    737734                i--;
    738                 FREE(matches[1]);
     735                free(matches[1]);
    739736                rl_completion_append_character = '\0';
    740737            }
    741738
     
    775772
    776773        case _CMD_SET:
    777774
    778             new = (cmds_t *) MALLOC(sizeof(cmds_t));
     775            new = (cmds_t *) malloc(sizeof(cmds_t));
    779776            new->next = (cmds_t *) NULL;
    780777
    781778            if (!cmds) {
     
    790787            tmp = strdup(text);
    791788            argc = TclReadlineParse(args, sizeof(args), tmp);
    792789
    793             new->cmd = (char**) MALLOC(sizeof(char*) * (argc + 1));
     790            new->cmd = (char**) malloc(sizeof(char*) * (argc + 1));
    794791
    795792            for (i = 0; i < argc; i++)
    796793                new->cmd[i] = args[i];