int cmd_base64_decode()

in tcl_cmds.c [1540:1563]


int cmd_base64_decode(ClientData cd, Tcl_Interp *ixx, int objc, Tcl_Obj *CONST objv[])
{
	uint8_t *enc_data, *ws_data, *data;
	size_t length;
	Tcl_Obj *obj;
	
	if (objc != 2) {
		Tcl_WrongNumArgs(interp, 1, objv, "string");
		
		return TCL_ERROR;
	}
	
	enc_data = (uint8_t*) Tcl_GetString(objv[1]);
	ws_data = base64_remove_whitespace(enc_data, 0);
	data = base64_to_buf(data, &length);
	
	obj = Tcl_NewObj();
	Tcl_SetByteArrayObj(obj, (unsigned char*) data, length);
	
	free(ws_data);
	free(data);
	
	return TCL_OK;
}