void cfg_show_causes(struct session *s) { struct window_pane *wp; char *cause; u_int i; if (s == NULL || ARRAY_EMPTY(&cfg_causes)) return; wp = s->curw->window->active; window_pane_set_mode(wp, &window_copy_mode); window_copy_init_for_output(wp); for (i = 0; i < ARRAY_LENGTH(&cfg_causes); i++) { cause = ARRAY_ITEM(&cfg_causes, i); window_copy_add(wp, "%s", cause); free(cause); } ARRAY_FREE(&cfg_causes); }
/* Abort fetching. */ void fetch_mbox_abort(struct account *a) { struct fetch_mbox_data *data = a->data; struct fetch_mbox_mbox *fmbox; u_int i; for (i = 0; i < ARRAY_LENGTH(&data->fmboxes); i++) { fmbox = ARRAY_ITEM(&data->fmboxes, i); if (fmbox->base != NULL) munmap(fmbox->base, fmbox->size); if (fmbox->fd != -1) closelock(fmbox->fd, fmbox->path, conf.lock_types); xfree(fmbox->path); xfree(fmbox); } ARRAY_FREE(&data->fmboxes); }
int cmd_source_file_exec(struct cmd *self, struct cmd_ctx *ctx) { struct args *args = self->args; struct causelist causes; char *cause; struct window_pane *wp; int retval; u_int i; ARRAY_INIT(&causes); retval = load_cfg(args->argv[0], ctx, &causes); if (ARRAY_EMPTY(&causes)) return (retval); if (retval == 1 && !RB_EMPTY(&sessions) && ctx->cmdclient != NULL) { wp = RB_MIN(sessions, &sessions)->curw->window->active; window_pane_set_mode(wp, &window_copy_mode); window_copy_init_for_output(wp); for (i = 0; i < ARRAY_LENGTH(&causes); i++) { cause = ARRAY_ITEM(&causes, i); window_copy_add(wp, "%s", cause); xfree(cause); } } else { for (i = 0; i < ARRAY_LENGTH(&causes); i++) { cause = ARRAY_ITEM(&causes, i); ctx->print(ctx, "%s", cause); xfree(cause); } } ARRAY_FREE(&causes); return (retval); }
/** *YGH 19 */ static void wsa_ca_scope_free(wsa_ca_scope* wsa_ca_scope){ if(NULL!=wsa_ca_scope->name.buf) ARRAY_FREE(&wsa_ca_scope->name); psid_priority_array_free(&wsa_ca_scope->permissions); geographic_region_free(&wsa_ca_scope->region); }
/** *YGH 18 */ static void identified_not_localized_scope_free(identified_not_localized_scope* identified_not_localized_scope){ if(NULL!=identified_not_localized_scope->name.buf) ARRAY_FREE(&identified_not_localized_scope->name); psid_ssp_array_free(&identified_not_localized_scope->permissions); }
static void psid_priority_ssp_free(psid_priority_ssp* psid_priority_ssp){ if(NULL!=psid_priority_ssp->service_specific_permissions.buf) ARRAY_FREE(&psid_priority_ssp->service_specific_permissions); }
/* Generated */ TA_RetCode TA_PREFIX(INT_MACD)( int startIdx, /* Generated */ int endIdx, /* Generated */ const INPUT_TYPE inReal[], /* Generated */ int optInFastPeriod, /* Generated */ int optInSlowPeriod, /* Generated */ int optInSignalPeriod_2, /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outMACD[], /* Generated */ double outMACDSignal[], /* Generated */ double outMACDHist[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF(slowEMABuffer); /* Generated */ ARRAY_REF(fastEMABuffer); /* Generated */ double k1, k2; /* Generated */ TA_RetCode retCode; /* Generated */ int tempInteger, outBegIdx1, outNbElement1; /* Generated */ int outBegIdx2, outNbElement2; /* Generated */ int lookbackTotal, lookbackSignal; /* Generated */ int i; /* Generated */ if( optInSlowPeriod < optInFastPeriod ) /* Generated */ { /* Generated */ tempInteger = optInSlowPeriod; /* Generated */ optInSlowPeriod = optInFastPeriod; /* Generated */ optInFastPeriod = tempInteger; /* Generated */ } /* Generated */ if( optInSlowPeriod != 0 ) /* Generated */ k1 = PER_TO_K(optInSlowPeriod); /* Generated */ else /* Generated */ { /* Generated */ optInSlowPeriod = 26; /* Generated */ k1 = (double)0.075; /* Generated */ } /* Generated */ if( optInFastPeriod != 0 ) /* Generated */ k2 = PER_TO_K(optInFastPeriod); /* Generated */ else /* Generated */ { /* Generated */ optInFastPeriod = 12; /* Generated */ k2 = (double)0.15; /* Generated */ } /* Generated */ lookbackSignal = TA_EMA_Lookback( optInSignalPeriod_2 ); /* Generated */ lookbackTotal = lookbackSignal; /* Generated */ lookbackTotal += TA_EMA_Lookback( optInSlowPeriod ); /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return TA_SUCCESS; /* Generated */ } /* Generated */ tempInteger = (endIdx-startIdx)+1+lookbackSignal; /* Generated */ ARRAY_ALLOC( fastEMABuffer, tempInteger ); /* Generated */ if( !fastEMABuffer ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return TA_ALLOC_ERR; /* Generated */ } /* Generated */ ARRAY_ALLOC( slowEMABuffer, tempInteger ); /* Generated */ if( !slowEMABuffer ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastEMABuffer ); /* Generated */ return TA_ALLOC_ERR; /* Generated */ } /* Generated */ tempInteger = startIdx-lookbackSignal; /* Generated */ retCode = TA_PREFIX(INT_EMA)( tempInteger, endIdx, /* Generated */ inReal, optInSlowPeriod, k1, /* Generated */ &outBegIdx1, &outNbElement1, slowEMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastEMABuffer ); /* Generated */ ARRAY_FREE( slowEMABuffer ); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = TA_PREFIX(INT_EMA)( tempInteger, endIdx, /* Generated */ inReal, optInFastPeriod, k2, /* Generated */ &outBegIdx2, &outNbElement2, fastEMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastEMABuffer ); /* Generated */ ARRAY_FREE( slowEMABuffer ); /* Generated */ return retCode; /* Generated */ } /* Generated */ if( (outBegIdx1 != tempInteger) || /* Generated */ (outBegIdx2 != tempInteger) || /* Generated */ (outNbElement1 != outNbElement2) || /* Generated */ (outNbElement1 != (endIdx-startIdx)+1+lookbackSignal) ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastEMABuffer ); /* Generated */ ARRAY_FREE( slowEMABuffer ); /* Generated */ return TA_INTERNAL_ERROR(119); /* Generated */ } /* Generated */ for( i=0; i < outNbElement1; i++ ) /* Generated */ fastEMABuffer[i] = fastEMABuffer[i] - slowEMABuffer[i]; /* Generated */ ARRAY_MEMMOVE( outMACD, 0, fastEMABuffer, lookbackSignal, (endIdx-startIdx)+1 ); /* Generated */ retCode = TA_INT_EMA( 0, outNbElement1-1, /* Generated */ fastEMABuffer, optInSignalPeriod_2, PER_TO_K(optInSignalPeriod_2), /* Generated */ &outBegIdx2, &outNbElement2, outMACDSignal ); /* Generated */ ARRAY_FREE( fastEMABuffer ); /* Generated */ ARRAY_FREE( slowEMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return retCode; /* Generated */ } /* Generated */ for( i=0; i < outNbElement2; i++ ) /* Generated */ outMACDHist[i] = outMACD[i]-outMACDSignal[i]; /* Generated */ *outBegIdx = startIdx; /* Generated */ *outNbElement = outNbElement2; /* Generated */ return TA_SUCCESS; /* Generated */ }
/* Generated */ TA_RetCode TA_S_STOCH( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int optInFastK_Period, /* From 1 to 100000 */ /* Generated */ int optInSlowK_Period, /* From 1 to 100000 */ /* Generated */ TA_MAType optInSlowK_MAType, /* Generated */ int optInSlowD_Period, /* From 1 to 100000 */ /* Generated */ TA_MAType optInSlowD_MAType, /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outSlowK[], /* Generated */ double outSlowD[] ) /* Generated */ #endif /* Generated */ { /* Generated */ TA_RetCode retCode; /* Generated */ double lowest, highest, tmp, diff; /* Generated */ ARRAY_REF( tempBuffer ); /* Generated */ int outIdx, lowestIdx, highestIdx; /* Generated */ int lookbackTotal, lookbackK, lookbackKSlow, lookbackDSlow; /* Generated */ int trailingIdx, today, i; /* Generated */ #if !defined( _MANAGED ) && !defined(USE_SINGLE_PRECISION_INPUT) &&!defined(_JAVA) /* Generated */ int bufferIsAllocated; /* Generated */ #endif /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return NAMESPACE(TA_RetCode)TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return NAMESPACE(TA_RetCode)TA_OUT_OF_RANGE_END_INDEX; /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if(!inHigh||!inLow||!inClose) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( (int)optInFastK_Period == TA_INTEGER_DEFAULT ) /* Generated */ optInFastK_Period = 5; /* Generated */ else if( ((int)optInFastK_Period < 1) || ((int)optInFastK_Period > 100000) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ if( (int)optInSlowK_Period == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowK_Period = 3; /* Generated */ else if( ((int)optInSlowK_Period < 1) || ((int)optInSlowK_Period > 100000) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if( (int)optInSlowK_MAType == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowK_MAType = 0; /* Generated */ else if( ((int)optInSlowK_MAType < 0) || ((int)optInSlowK_MAType > 8) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( (int)optInSlowD_Period == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowD_Period = 3; /* Generated */ else if( ((int)optInSlowD_Period < 1) || ((int)optInSlowD_Period > 100000) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if( (int)optInSlowD_MAType == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowD_MAType = 0; /* Generated */ else if( ((int)optInSlowD_MAType < 0) || ((int)optInSlowD_MAType > 8) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if( !outSlowK ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ if( !outSlowD ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackK = optInFastK_Period-1; /* Generated */ lookbackKSlow = LOOKBACK_CALL(MA)( optInSlowK_Period, optInSlowK_MAType ); /* Generated */ lookbackDSlow = LOOKBACK_CALL(MA)( optInSlowD_Period, optInSlowD_MAType ); /* Generated */ lookbackTotal = lookbackK + lookbackDSlow + lookbackKSlow; /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNbElement); /* Generated */ return NAMESPACE(TA_RetCode)TA_SUCCESS; /* Generated */ } /* Generated */ outIdx = 0; /* Generated */ trailingIdx = startIdx-lookbackTotal; /* Generated */ today = trailingIdx+lookbackK; /* Generated */ lowestIdx = highestIdx = -1; /* Generated */ diff = highest = lowest = 0.0; /* Generated */ #if !defined( _MANAGED ) && !defined(USE_SINGLE_PRECISION_INPUT) && !defined( _JAVA ) /* Generated */ bufferIsAllocated = 0; /* Generated */ #endif /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_ALLOC( tempBuffer, endIdx-today+1 ); /* Generated */ #else /* Generated */ if( (outSlowK == inHigh) || /* Generated */ (outSlowK == inLow) || /* Generated */ (outSlowK == inClose) ) /* Generated */ { /* Generated */ tempBuffer = outSlowK; /* Generated */ } /* Generated */ else if( (outSlowD == inHigh) || /* Generated */ (outSlowD == inLow) || /* Generated */ (outSlowD == inClose) ) /* Generated */ { /* Generated */ tempBuffer = outSlowD; /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ #if !defined( _MANAGED ) && !defined(_JAVA) /* Generated */ bufferIsAllocated = 1; /* Generated */ #endif /* Generated */ ARRAY_ALLOC( tempBuffer, endIdx-today+1 ); /* Generated */ } /* Generated */ #endif /* Generated */ while( today <= endIdx ) /* Generated */ { /* Generated */ tmp = inLow[today]; /* Generated */ if( lowestIdx < trailingIdx ) /* Generated */ { /* Generated */ lowestIdx = trailingIdx; /* Generated */ lowest = inLow[lowestIdx]; /* Generated */ i = lowestIdx; /* Generated */ while( ++i<=today ) /* Generated */ { /* Generated */ tmp = inLow[i]; /* Generated */ if( tmp < lowest ) /* Generated */ { /* Generated */ lowestIdx = i; /* Generated */ lowest = tmp; /* Generated */ } /* Generated */ } /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ else if( tmp <= lowest ) /* Generated */ { /* Generated */ lowestIdx = today; /* Generated */ lowest = tmp; /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ tmp = inHigh[today]; /* Generated */ if( highestIdx < trailingIdx ) /* Generated */ { /* Generated */ highestIdx = trailingIdx; /* Generated */ highest = inHigh[highestIdx]; /* Generated */ i = highestIdx; /* Generated */ while( ++i<=today ) /* Generated */ { /* Generated */ tmp = inHigh[i]; /* Generated */ if( tmp > highest ) /* Generated */ { /* Generated */ highestIdx = i; /* Generated */ highest = tmp; /* Generated */ } /* Generated */ } /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ else if( tmp >= highest ) /* Generated */ { /* Generated */ highestIdx = today; /* Generated */ highest = tmp; /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ if( diff != 0.0 ) /* Generated */ tempBuffer[outIdx++] = (inClose[today]-lowest)/diff; /* Generated */ else /* Generated */ tempBuffer[outIdx++] = 0.0; /* Generated */ trailingIdx++; /* Generated */ today++; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(MA)( 0, outIdx-1, /* Generated */ tempBuffer, optInSlowK_Period, /* Generated */ optInSlowK_MAType, /* Generated */ outBegIdx, outNbElement, tempBuffer ); /* Generated */ if( (retCode != NAMESPACE(TA_RetCode)TA_SUCCESS ) || ((int)VALUE_HANDLE_DEREF(outNbElement) == 0) ) /* Generated */ { /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_FREE( tempBuffer ); /* Generated */ #else /* Generated */ ARRAY_FREE_COND( bufferIsAllocated, tempBuffer ); /* Generated */ #endif /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNbElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(MA)( 0, (int)VALUE_HANDLE_DEREF(outNbElement)-1, /* Generated */ tempBuffer, optInSlowD_Period, /* Generated */ optInSlowD_MAType, /* Generated */ outBegIdx, outNbElement, outSlowD ); /* Generated */ ARRAY_MEMMOVE( outSlowK, 0, tempBuffer,lookbackDSlow,(int)VALUE_HANDLE_DEREF(outNbElement)); /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_FREE( tempBuffer ); /* Generated */ #else /* Generated */ ARRAY_FREE_COND( bufferIsAllocated, tempBuffer ); /* Generated */ #endif /* Generated */ if( retCode != NAMESPACE(TA_RetCode)TA_SUCCESS ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNbElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ return NAMESPACE(TA_RetCode)TA_SUCCESS; /* Generated */ }
/* *YGH 4 */ static void ecdsa_signature_free(ecdsa_signature* ecdsa_signature){ elliptic_curve_point_free(&ecdsa_signature->r); if(NULL != ecdsa_signature->s.buf) ARRAY_FREE(&ecdsa_signature->s); }
/* Generated */ TA_RetCode TA_S_STOCHF( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inHigh_0[], /* Generated */ const float inLow_0[], /* Generated */ const float inClose_0[], /* Generated */ int optInFastK_Period_0, /* From 1 to 100000 */ /* Generated */ int optInFastD_Period_1, /* From 1 to 100000 */ /* Generated */ TA_MAType optInFastD_MAType_2, /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outFastK_0[], /* Generated */ double outFastD_1[] ) /* Generated */ #endif /* Generated */ { /* Generated */ TA_RetCode retCode; /* Generated */ double lowest, highest, tmp, diff; /* Generated */ ARRAY_REF( tempBuffer ); /* Generated */ int outIdx, lowestIdx, highestIdx; /* Generated */ int lookbackTotal, lookbackK, lookbackFastD; /* Generated */ int trailingIdx, today, i; /* Generated */ #if !defined( _MANAGED ) && !defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ int bufferIsAllocated; /* Generated */ #endif /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return TA_OUT_OF_RANGE_END_INDEX; /* Generated */ if(!inHigh_0||!inLow_0||!inClose_0) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( (int)optInFastK_Period_0 == TA_INTEGER_DEFAULT ) /* Generated */ optInFastK_Period_0 = 5; /* Generated */ else if( ((int)optInFastK_Period_0 < 1) || ((int)optInFastK_Period_0 > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( (int)optInFastD_Period_1 == TA_INTEGER_DEFAULT ) /* Generated */ optInFastD_Period_1 = 3; /* Generated */ else if( ((int)optInFastD_Period_1 < 1) || ((int)optInFastD_Period_1 > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) /* Generated */ if( (int)optInFastD_MAType_2 == TA_INTEGER_DEFAULT ) /* Generated */ optInFastD_MAType_2 = 0; /* Generated */ else if( ((int)optInFastD_MAType_2 < 0) || ((int)optInFastD_MAType_2 > 8) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( outFastK_0 == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( outFastD_1 == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ lookbackK = optInFastK_Period_0-1; /* Generated */ lookbackFastD = TA_MA_Lookback( optInFastD_Period_1, optInFastD_MAType_2 ); /* Generated */ lookbackTotal = lookbackK + lookbackFastD; /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return TA_SUCCESS; /* Generated */ } /* Generated */ outIdx = 0; /* Generated */ trailingIdx = startIdx-lookbackTotal; /* Generated */ today = trailingIdx+lookbackK; /* Generated */ lowestIdx = highestIdx = -1; /* Generated */ diff = highest = lowest = 0.0; /* Generated */ #if !defined( _MANAGED ) && !defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ bufferIsAllocated = 0; /* Generated */ #endif /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_ALLOC( tempBuffer, endIdx-today+1 ); /* Generated */ #else /* Generated */ if( (outFastK_0 == inHigh_0) || /* Generated */ (outFastK_0 == inLow_0) || /* Generated */ (outFastK_0 == inClose_0) ) /* Generated */ { /* Generated */ tempBuffer = outFastK_0; /* Generated */ } /* Generated */ else if( (outFastD_1 == inHigh_0) || /* Generated */ (outFastD_1 == inLow_0) || /* Generated */ (outFastD_1 == inClose_0) ) /* Generated */ { /* Generated */ tempBuffer = outFastD_1; /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ #if !defined( _MANAGED ) /* Generated */ bufferIsAllocated = 1; /* Generated */ #endif /* Generated */ ARRAY_ALLOC(tempBuffer, endIdx-today+1 ); /* Generated */ } /* Generated */ #endif /* Generated */ while( today <= endIdx ) /* Generated */ { /* Generated */ tmp = inLow_0[today]; /* Generated */ if( lowestIdx < trailingIdx ) /* Generated */ { /* Generated */ lowestIdx = trailingIdx; /* Generated */ lowest = inLow_0[lowestIdx]; /* Generated */ i = lowestIdx; /* Generated */ while( ++i<=today ) /* Generated */ { /* Generated */ tmp = inLow_0[i]; /* Generated */ if( tmp < lowest ) /* Generated */ { /* Generated */ lowestIdx = i; /* Generated */ lowest = tmp; /* Generated */ } /* Generated */ } /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ else if( tmp <= lowest ) /* Generated */ { /* Generated */ lowestIdx = today; /* Generated */ lowest = tmp; /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ tmp = inHigh_0[today]; /* Generated */ if( highestIdx < trailingIdx ) /* Generated */ { /* Generated */ highestIdx = trailingIdx; /* Generated */ highest = inHigh_0[highestIdx]; /* Generated */ i = highestIdx; /* Generated */ while( ++i<=today ) /* Generated */ { /* Generated */ tmp = inHigh_0[i]; /* Generated */ if( tmp > highest ) /* Generated */ { /* Generated */ highestIdx = i; /* Generated */ highest = tmp; /* Generated */ } /* Generated */ } /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ else if( tmp >= highest ) /* Generated */ { /* Generated */ highestIdx = today; /* Generated */ highest = tmp; /* Generated */ diff = (highest - lowest)/100.0; /* Generated */ } /* Generated */ if( diff != 0.0 ) /* Generated */ tempBuffer[outIdx++] = (inClose_0[today]-lowest)/diff; /* Generated */ else /* Generated */ tempBuffer[outIdx++] = 0.0; /* Generated */ trailingIdx++; /* Generated */ today++; /* Generated */ } /* Generated */ retCode = TA_MA( 0, outIdx-1, /* Generated */ tempBuffer, optInFastD_Period_1, /* Generated */ optInFastD_MAType_2, /* Generated */ outBegIdx, outNbElement, outFastD_1 ); /* Generated */ if( (retCode != TA_SUCCESS) || (*outNbElement == 0) ) /* Generated */ { /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_FREE( tempBuffer ); /* Generated */ #else /* Generated */ ARRAY_FREE_COND( bufferIsAllocated, tempBuffer ); /* Generated */ #endif /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return retCode; /* Generated */ } /* Generated */ ARRAY_MEMMOVE( outFastK_0, 0, tempBuffer, lookbackFastD, *outNbElement ); /* Generated */ #if defined(USE_SINGLE_PRECISION_INPUT) /* Generated */ ARRAY_FREE( tempBuffer ); /* Generated */ #else /* Generated */ ARRAY_FREE_COND( bufferIsAllocated, tempBuffer ); /* Generated */ #endif /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return retCode; /* Generated */ } /* Generated */ *outBegIdx = startIdx; /* Generated */ return TA_SUCCESS; /* Generated */ }
/* Generated */ TA_RetCode TA_S_ACCBANDS( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inHigh[], /* Generated */ const float inLow[], /* Generated */ const float inClose[], /* Generated */ int optInTimePeriod, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNBElement, /* Generated */ double outRealUpperBand[], /* Generated */ double outRealMiddleBand[], /* Generated */ double outRealLowerBand[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ENUM_DECLARATION(RetCode) retCode; /* Generated */ ARRAY_REF( tempBuffer1 ); /* Generated */ ARRAY_REF( tempBuffer2 ); /* Generated */ VALUE_HANDLE_INT(outBegIdxDummy); /* Generated */ VALUE_HANDLE_INT(outNbElementDummy); /* Generated */ int i, j, outputSize, bufferSize, lookbackTotal; /* Generated */ double tempReal; /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_START_INDEX,OutOfRangeStartIndex); /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_END_INDEX,OutOfRangeEndIndex); /* Generated */ #if !defined(_JAVA) /* Generated */ if(!inHigh||!inLow||!inClose) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ if( (int)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 20; /* Generated */ else if( ((int)optInTimePeriod < 2) || ((int)optInTimePeriod > 100000) ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !outRealUpperBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if( !outRealMiddleBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ if( !outRealLowerBand ) /* Generated */ return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam); /* Generated */ #endif /* Generated */ #endif /* Generated */ lookbackTotal = LOOKBACK_CALL(SMA)( optInTimePeriod ); /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ } /* Generated */ outputSize = endIdx-startIdx+1; /* Generated */ bufferSize = outputSize+lookbackTotal; /* Generated */ ARRAY_ALLOC(tempBuffer1, bufferSize ); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !tempBuffer1 ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr); /* Generated */ } /* Generated */ #endif /* Generated */ ARRAY_ALLOC(tempBuffer2, bufferSize ); /* Generated */ #if !defined(_JAVA) /* Generated */ if( !tempBuffer2 ) /* Generated */ { /* Generated */ ARRAY_FREE(tempBuffer1); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr); /* Generated */ } /* Generated */ #endif /* Generated */ for(j=0, i=startIdx-lookbackTotal; i<=endIdx; i++, j++) /* Generated */ { /* Generated */ tempReal = inHigh[i]+inLow[i]; /* Generated */ if( !TA_IS_ZERO(tempReal) ) /* Generated */ { /* Generated */ tempReal = 4*(inHigh[i]-inLow[i])/tempReal; /* Generated */ tempBuffer1[j] = inHigh[i]*(1+tempReal); /* Generated */ tempBuffer2[j] = inLow[i]*(1-tempReal); /* Generated */ } /* Generated */ else /* Generated */ { /* Generated */ tempBuffer1[j] = inHigh[i]; /* Generated */ tempBuffer2[j] = inLow[i]; /* Generated */ } /* Generated */ } /* Generated */ retCode = FUNCTION_CALL(SMA)( startIdx, endIdx, inClose, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), outRealMiddleBand ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(SMA)( 0, bufferSize-1, tempBuffer1, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), /* Generated */ outRealUpperBand ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(SMA)( 0, bufferSize-1, tempBuffer2, /* Generated */ optInTimePeriod, /* Generated */ VALUE_HANDLE_OUT(outBegIdxDummy), VALUE_HANDLE_OUT(outNbElementDummy), /* Generated */ outRealLowerBand ); /* Generated */ ARRAY_FREE( tempBuffer1 ); /* Generated */ ARRAY_FREE( tempBuffer2 ); /* Generated */ if( (retCode != ENUM_VALUE(RetCode,TA_SUCCESS,Success) ) || ((int)VALUE_HANDLE_GET(outNbElementDummy) != outputSize) ) /* Generated */ { /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNBElement); /* Generated */ return retCode; /* Generated */ } /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = startIdx; /* Generated */ VALUE_HANDLE_DEREF(outNBElement) = outputSize; /* Generated */ return ENUM_VALUE(RetCode,TA_SUCCESS,Success); /* Generated */ }
/* Generated */ TA_RetCode TA_S_MACDEXT( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInFastPeriod, /* From 2 to 100000 */ /* Generated */ TA_MAType optInFastMAType, /* Generated */ int optInSlowPeriod, /* From 2 to 100000 */ /* Generated */ TA_MAType optInSlowMAType, /* Generated */ int optInSignalPeriod, /* From 1 to 100000 */ /* Generated */ TA_MAType optInSignalMAType, /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outMACD[], /* Generated */ double outMACDSignal[], /* Generated */ double outMACDHist[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF( slowMABuffer ); /* Generated */ ARRAY_REF( fastMABuffer ); /* Generated */ TA_RetCode retCode; /* Generated */ int tempInteger, outBegIdx1, outNbElement1; /* Generated */ int outBegIdx2, outNbElement2; /* Generated */ int lookbackTotal, lookbackSignal, lookbackLargest; /* Generated */ int i; /* Generated */ TA_MAType tempMAType; /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return TA_OUT_OF_RANGE_END_INDEX; /* Generated */ if( !inReal ) return TA_BAD_PARAM; /* Generated */ if( (int)optInFastPeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInFastPeriod = 12; /* Generated */ else if( ((int)optInFastPeriod < 2) || ((int)optInFastPeriod > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) /* Generated */ if( (int)optInFastMAType == TA_INTEGER_DEFAULT ) /* Generated */ optInFastMAType = 0; /* Generated */ else if( ((int)optInFastMAType < 0) || ((int)optInFastMAType > 8) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( (int)optInSlowPeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowPeriod = 26; /* Generated */ else if( ((int)optInSlowPeriod < 2) || ((int)optInSlowPeriod > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) /* Generated */ if( (int)optInSlowMAType == TA_INTEGER_DEFAULT ) /* Generated */ optInSlowMAType = 0; /* Generated */ else if( ((int)optInSlowMAType < 0) || ((int)optInSlowMAType > 8) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( (int)optInSignalPeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInSignalPeriod = 9; /* Generated */ else if( ((int)optInSignalPeriod < 1) || ((int)optInSignalPeriod > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) /* Generated */ if( (int)optInSignalMAType == TA_INTEGER_DEFAULT ) /* Generated */ optInSignalMAType = 0; /* Generated */ else if( ((int)optInSignalMAType < 0) || ((int)optInSignalMAType > 8) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( outMACD == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( outMACDSignal == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( outMACDHist == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( optInSlowPeriod < optInFastPeriod ) /* Generated */ { /* Generated */ tempInteger = optInSlowPeriod; /* Generated */ optInSlowPeriod = optInFastPeriod; /* Generated */ optInFastPeriod = tempInteger; /* Generated */ tempMAType = optInSlowMAType; /* Generated */ optInSlowMAType = optInFastMAType; /* Generated */ optInFastMAType = tempMAType; /* Generated */ } /* Generated */ lookbackLargest = TA_MA_Lookback( optInFastPeriod, optInFastMAType ); /* Generated */ tempInteger = TA_MA_Lookback( optInSlowPeriod, optInSlowMAType ); /* Generated */ if( tempInteger > lookbackLargest ) /* Generated */ lookbackLargest = tempInteger; /* Generated */ lookbackSignal = TA_MA_Lookback( optInSignalPeriod, optInSignalMAType ); /* Generated */ lookbackTotal = lookbackSignal+lookbackLargest; /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return TA_SUCCESS; /* Generated */ } /* Generated */ tempInteger = (endIdx-startIdx)+1+lookbackSignal; /* Generated */ ARRAY_ALLOC( fastMABuffer, tempInteger ); /* Generated */ if( !fastMABuffer ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return TA_ALLOC_ERR; /* Generated */ } /* Generated */ ARRAY_ALLOC( slowMABuffer, tempInteger ); /* Generated */ if( !slowMABuffer ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastMABuffer ); /* Generated */ return TA_ALLOC_ERR; /* Generated */ } /* Generated */ tempInteger = startIdx-lookbackSignal; /* Generated */ retCode = TA_PREFIX(MA)( tempInteger, endIdx, /* Generated */ inReal, optInSlowPeriod, optInSlowMAType, /* Generated */ &outBegIdx1, &outNbElement1, slowMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastMABuffer ); /* Generated */ ARRAY_FREE( slowMABuffer ); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = TA_PREFIX(MA)( tempInteger, endIdx, /* Generated */ inReal, optInFastPeriod, optInFastMAType, /* Generated */ &outBegIdx2, &outNbElement2, fastMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastMABuffer ); /* Generated */ ARRAY_FREE( slowMABuffer ); /* Generated */ return retCode; /* Generated */ } /* Generated */ if( (outBegIdx1 != tempInteger) || /* Generated */ (outBegIdx2 != tempInteger) || /* Generated */ (outNbElement1 != outNbElement2) || /* Generated */ (outNbElement1 != (endIdx-startIdx)+1+lookbackSignal) ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ ARRAY_FREE( fastMABuffer ); /* Generated */ ARRAY_FREE( slowMABuffer ); /* Generated */ return TA_INTERNAL_ERROR(119); /* Generated */ } /* Generated */ for( i=0; i < outNbElement1; i++ ) /* Generated */ fastMABuffer[i] = fastMABuffer[i] - slowMABuffer[i]; /* Generated */ ARRAY_MEMMOVE( outMACD, 0, fastMABuffer, lookbackSignal, (endIdx-startIdx)+1 ); /* Generated */ retCode = TA_MA( 0, outNbElement1-1, /* Generated */ fastMABuffer, optInSignalPeriod, optInSignalMAType, /* Generated */ &outBegIdx2, &outNbElement2, outMACDSignal ); /* Generated */ ARRAY_FREE( fastMABuffer ); /* Generated */ ARRAY_FREE( slowMABuffer ); /* Generated */ if( retCode != TA_SUCCESS ) /* Generated */ { /* Generated */ *outBegIdx = 0; /* Generated */ *outNbElement = 0; /* Generated */ return retCode; /* Generated */ } /* Generated */ for( i=0; i < outNbElement2; i++ ) /* Generated */ outMACDHist[i] = outMACD[i]-outMACDSignal[i]; /* Generated */ *outBegIdx = startIdx; /* Generated */ *outNbElement = outNbElement2; /* Generated */ return TA_SUCCESS; /* Generated */ }
/* Generated */ TA_RetCode TA_S_MA( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInTimePeriod, /* From 1 to 100000 */ /* Generated */ TA_MAType optInMAType, /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF(dummyBuffer); /* Generated */ TA_RetCode retCode; /* Generated */ int nbElement; /* Generated */ int outIdx, todayIdx; /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return TA_OUT_OF_RANGE_END_INDEX; /* Generated */ if( !inReal ) return TA_BAD_PARAM; /* Generated */ if( (int)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 30; /* Generated */ else if( ((int)optInTimePeriod < 1) || ((int)optInTimePeriod > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) /* Generated */ if( (int)optInMAType == TA_INTEGER_DEFAULT ) /* Generated */ optInMAType = 0; /* Generated */ else if( ((int)optInMAType < 0) || ((int)optInMAType > 8) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( outReal == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( optInTimePeriod == 1 ) /* Generated */ { /* Generated */ nbElement = endIdx-startIdx+1; /* Generated */ *outNbElement = nbElement; /* Generated */ for( todayIdx=startIdx, outIdx=0; outIdx < nbElement; outIdx++, todayIdx++ ) /* Generated */ outReal[outIdx] = inReal[todayIdx]; /* Generated */ *outBegIdx = startIdx; /* Generated */ return TA_SUCCESS; /* Generated */ } /* Generated */ switch( optInMAType ) /* Generated */ { /* Generated */ case TA_MAType_SMA: /* Generated */ retCode = TA_PREFIX(INT_SMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_EMA: /* Generated */ retCode = TA_PREFIX(INT_EMA)( startIdx, endIdx, inReal, /* Generated */ optInTimePeriod, PER_TO_K(optInTimePeriod), /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_WMA: /* Generated */ retCode = TA_PREFIX(WMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_DEMA: /* Generated */ retCode = TA_PREFIX(DEMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_TEMA: /* Generated */ retCode = TA_PREFIX(TEMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_TRIMA: /* Generated */ retCode = TA_PREFIX(TRIMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_KAMA: /* Generated */ retCode = TA_PREFIX(KAMA)( startIdx, endIdx, inReal, optInTimePeriod, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ case TA_MAType_MAMA: /* Generated */ ARRAY_ALLOC(dummyBuffer, (endIdx-startIdx+1) ); /* Generated */ if( !dummyBuffer ) /* Generated */ return TA_ALLOC_ERR; /* Generated */ retCode = TA_PREFIX(MAMA)( startIdx, endIdx, inReal, 0.5, 0.05, /* Generated */ outBegIdx, outNbElement, /* Generated */ outReal, dummyBuffer ); /* Generated */ ARRAY_FREE( dummyBuffer ); /* Generated */ break; /* Generated */ case TA_MAType_T3: /* Generated */ retCode = TA_PREFIX(T3)( startIdx, endIdx, inReal, /* Generated */ optInTimePeriod, 0.7, /* Generated */ outBegIdx, outNbElement, outReal ); /* Generated */ break; /* Generated */ default: /* Generated */ retCode = TA_BAD_PARAM; /* Generated */ break; /* Generated */ } /* Generated */ return retCode; /* Generated */ }
/* Generated */ TA_RetCode TA_S_TEMA( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal_0[], /* Generated */ int optInTimePeriod_0, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outReal_0[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF(firstEMA); /* Generated */ ARRAY_REF(secondEMA); /* Generated */ double k; /* Generated */ int firstEMABegIdx, firstEMANbElement; /* Generated */ int secondEMABegIdx, secondEMANbElement; /* Generated */ int thirdEMABegIdx, thirdEMANbElement; /* Generated */ int tempInt, outIdx, lookbackTotal, lookbackEMA; /* Generated */ int firstEMAIdx, secondEMAIdx; /* Generated */ TA_RetCode retCode; /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return TA_OUT_OF_RANGE_END_INDEX; /* Generated */ if( !inReal_0 ) return TA_BAD_PARAM; /* Generated */ if( (int)optInTimePeriod_0 == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod_0 = 30; /* Generated */ else if( ((int)optInTimePeriod_0 < 2) || ((int)optInTimePeriod_0 > 100000) ) /* Generated */ return TA_BAD_PARAM; /* Generated */ if( outReal_0 == NULL ) /* Generated */ return TA_BAD_PARAM; /* Generated */ #endif /* Generated */ *outNbElement = 0; /* Generated */ *outBegIdx = 0; /* Generated */ lookbackEMA = TA_EMA_Lookback( optInTimePeriod_0 ); /* Generated */ lookbackTotal = lookbackEMA * 3; /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ return TA_SUCCESS; /* Generated */ tempInt = lookbackTotal+(endIdx-startIdx)+1; /* Generated */ ARRAY_ALLOC(firstEMA,tempInt); /* Generated */ if( !firstEMA ) /* Generated */ return TA_ALLOC_ERR; /* Generated */ k = PER_TO_K(optInTimePeriod_0); /* Generated */ retCode = TA_PREFIX(INT_EMA)( startIdx-(lookbackEMA*2), endIdx, inReal_0, /* Generated */ optInTimePeriod_0, k, /* Generated */ &firstEMABegIdx, &firstEMANbElement, firstEMA ); /* Generated */ if( (retCode != TA_SUCCESS) || (firstEMANbElement == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ ARRAY_ALLOC(secondEMA,firstEMANbElement); /* Generated */ if( !secondEMA ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ return TA_ALLOC_ERR; /* Generated */ } /* Generated */ retCode = TA_INT_EMA( 0, firstEMANbElement-1, firstEMA, /* Generated */ optInTimePeriod_0, k, /* Generated */ &secondEMABegIdx, &secondEMANbElement, secondEMA ); /* Generated */ if( (retCode != TA_SUCCESS) || (secondEMANbElement == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = TA_INT_EMA( 0, secondEMANbElement-1, secondEMA, /* Generated */ optInTimePeriod_0, k, /* Generated */ &thirdEMABegIdx, &thirdEMANbElement, /* Generated */ outReal_0 ); /* Generated */ if( (retCode != TA_SUCCESS) || (thirdEMANbElement == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ firstEMAIdx = thirdEMABegIdx + secondEMABegIdx; /* Generated */ secondEMAIdx = thirdEMABegIdx; /* Generated */ *outBegIdx = firstEMAIdx + firstEMABegIdx; /* Generated */ outIdx = 0; /* Generated */ while( outIdx < thirdEMANbElement ) /* Generated */ { /* Generated */ outReal_0[outIdx] += (3.0*firstEMA[firstEMAIdx++]) - (3.0*secondEMA[secondEMAIdx++]); /* Generated */ outIdx++; /* Generated */ } /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ *outNbElement = outIdx; /* Generated */ return TA_SUCCESS; /* Generated */ }
/* Generated */ TA_RetCode TA_S_TEMA( int startIdx, /* Generated */ int endIdx, /* Generated */ const float inReal[], /* Generated */ int optInTimePeriod, /* From 2 to 100000 */ /* Generated */ int *outBegIdx, /* Generated */ int *outNbElement, /* Generated */ double outReal[] ) /* Generated */ #endif /* Generated */ { /* Generated */ ARRAY_REF(firstEMA); /* Generated */ ARRAY_REF(secondEMA); /* Generated */ double k; /* Generated */ VALUE_HANDLE_INT(firstEMABegIdx); /* Generated */ VALUE_HANDLE_INT(firstEMANbElement); /* Generated */ VALUE_HANDLE_INT(secondEMABegIdx); /* Generated */ VALUE_HANDLE_INT(secondEMANbElement); /* Generated */ VALUE_HANDLE_INT(thirdEMABegIdx); /* Generated */ VALUE_HANDLE_INT(thirdEMANbElement); /* Generated */ int tempInt, outIdx, lookbackTotal, lookbackEMA; /* Generated */ int firstEMAIdx, secondEMAIdx; /* Generated */ TA_RetCode retCode; /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK /* Generated */ if( startIdx < 0 ) /* Generated */ return NAMESPACE(TA_RetCode)TA_OUT_OF_RANGE_START_INDEX; /* Generated */ if( (endIdx < 0) || (endIdx < startIdx)) /* Generated */ return NAMESPACE(TA_RetCode)TA_OUT_OF_RANGE_END_INDEX; /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if( !inReal ) return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ if( (int)optInTimePeriod == TA_INTEGER_DEFAULT ) /* Generated */ optInTimePeriod = 30; /* Generated */ else if( ((int)optInTimePeriod < 2) || ((int)optInTimePeriod > 100000) ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #if !defined(_MANAGED) && !defined(_JAVA) /* Generated */ if( !outReal ) /* Generated */ return NAMESPACE(TA_RetCode)TA_BAD_PARAM; /* Generated */ #endif /* Generated */ #endif /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outNbElement); /* Generated */ VALUE_HANDLE_DEREF_TO_ZERO(outBegIdx); /* Generated */ lookbackEMA = LOOKBACK_CALL(EMA)( optInTimePeriod ); /* Generated */ lookbackTotal = lookbackEMA * 3; /* Generated */ if( startIdx < lookbackTotal ) /* Generated */ startIdx = lookbackTotal; /* Generated */ if( startIdx > endIdx ) /* Generated */ return NAMESPACE(TA_RetCode)TA_SUCCESS; /* Generated */ tempInt = lookbackTotal+(endIdx-startIdx)+1; /* Generated */ ARRAY_ALLOC(firstEMA,tempInt); /* Generated */ #if !defined( _JAVA ) /* Generated */ if( !firstEMA ) /* Generated */ return NAMESPACE(TA_RetCode)TA_ALLOC_ERR; /* Generated */ #endif /* Generated */ k = PER_TO_K(optInTimePeriod); /* Generated */ retCode = FUNCTION_CALL(INT_EMA)( startIdx-(lookbackEMA*2), endIdx, inReal, /* Generated */ optInTimePeriod, k, /* Generated */ VALUE_HANDLE_OUT(firstEMABegIdx), VALUE_HANDLE_OUT(firstEMANbElement), /* Generated */ firstEMA ); /* Generated */ if( (retCode != NAMESPACE(TA_RetCode)TA_SUCCESS ) || (VALUE_HANDLE_GET(firstEMANbElement) == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ ARRAY_ALLOC(secondEMA,VALUE_HANDLE_GET(firstEMANbElement)); /* Generated */ #if !defined( _JAVA ) /* Generated */ if( !secondEMA ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ return NAMESPACE(TA_RetCode)TA_ALLOC_ERR; /* Generated */ } /* Generated */ #endif /* Generated */ retCode = FUNCTION_CALL_DOUBLE(INT_EMA)( 0, VALUE_HANDLE_GET(firstEMANbElement)-1, firstEMA, /* Generated */ optInTimePeriod, k, /* Generated */ VALUE_HANDLE_OUT(secondEMABegIdx), VALUE_HANDLE_OUT(secondEMANbElement), /* Generated */ secondEMA ); /* Generated */ if( (retCode != NAMESPACE(TA_RetCode)TA_SUCCESS ) || (VALUE_HANDLE_GET(secondEMANbElement) == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ retCode = FUNCTION_CALL_DOUBLE(INT_EMA)( 0, VALUE_HANDLE_GET(secondEMANbElement)-1, secondEMA, /* Generated */ optInTimePeriod, k, /* Generated */ VALUE_HANDLE_OUT(thirdEMABegIdx), VALUE_HANDLE_OUT(thirdEMANbElement), /* Generated */ outReal ); /* Generated */ if( (retCode != NAMESPACE(TA_RetCode)TA_SUCCESS ) || (VALUE_HANDLE_GET(thirdEMANbElement) == 0) ) /* Generated */ { /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ return retCode; /* Generated */ } /* Generated */ firstEMAIdx = VALUE_HANDLE_GET(thirdEMABegIdx) + VALUE_HANDLE_GET(secondEMABegIdx); /* Generated */ secondEMAIdx = VALUE_HANDLE_GET(thirdEMABegIdx); /* Generated */ VALUE_HANDLE_DEREF(outBegIdx) = firstEMAIdx + VALUE_HANDLE_GET(firstEMABegIdx); /* Generated */ outIdx = 0; /* Generated */ while( outIdx < VALUE_HANDLE_GET(thirdEMANbElement) ) /* Generated */ { /* Generated */ outReal[outIdx] += (3.0*firstEMA[firstEMAIdx++]) - (3.0*secondEMA[secondEMAIdx++]); /* Generated */ outIdx++; /* Generated */ } /* Generated */ ARRAY_FREE( firstEMA ); /* Generated */ ARRAY_FREE( secondEMA ); /* Generated */ VALUE_HANDLE_DEREF(outNbElement) = outIdx; /* Generated */ return NAMESPACE(TA_RetCode)TA_SUCCESS; /* Generated */ }
/** *YGH 20 */ static void sec_data_exch_ca_scope_free(sec_data_exch_ca_scope* sec_data_exch_ca_scope){ if(NULL!=sec_data_exch_ca_scope->name.buf) ARRAY_FREE(&sec_data_exch_ca_scope->name); psid_array_free(&sec_data_exch_ca_scope->permissions); geographic_region_free(&sec_data_exch_ca_scope->region); }
/** * YGH 2 */ static void tbsdata_extension_free(tbsdata_extension* tbsdata_extension) { if(NULL == tbsdata_extension->value.buf) return ; ARRAY_FREE(&tbsdata_extension->value); }
int split_pe(int argc, char *argv[], char *progname) { int c, bc_len = -1, ret, i, j, bc_idx, only_count = 0; unsigned num_mismatches = DEFAULT_NUM_MISMATCHES, num_spacer_bases = DEFAULT_NUM_SPACER_BASES, dna_alpha_len = strlen(DNA_ALPHA), num_undetermined = 0; char *out_prefix = NULL, *fn, **sptr, bc_id[1024], bc_seq[1024], bc_seq_cpy[1024]; // hello, buffer overflow clock_t t = clock(); BcRec bc; ArrayBcRec bcs; FILE *fp; kseq_t *seq1, *seq2; khash_t(str) *h = kh_init(str); khint_t k, k2; gzFile *fp1, *fp2; ARRAY_INIT(&bcs, BcRec, 1000); while ((c = getopt(argc, argv, "m:s:o:c")) >= 0) { switch (c) { case 'm': if (sscanf(optarg, "%u", &num_mismatches) != 1) { fprintf(stderr, "Error: option -m expects unsigned int\n"); return -1; } break; case 's': if (sscanf(optarg, "%u", &num_spacer_bases) != 1) { fprintf(stderr, "Error: option -s expects unsigned int\n"); return -1; } break; case 'o': out_prefix = strdup(optarg); break; case 'c': only_count = 1; break; } } if (optind + 3 != argc) { print_pe_usage(progname); return -1; } if (num_mismatches != 0 && num_mismatches != 1) { fprintf(stderr, "Error: argument -m has to be 0 or 1\n"); return -1; } if (out_prefix == NULL) { out_prefix = strdup(DEFAULT_OUTPUT_PREFIX); } for (sptr = argv+optind; sptr-argv<argc; sptr++) { if (access(*sptr, F_OK) == -1) { fprintf(stderr, "Error: file %s does not exist\n", *sptr); return -1; } } fprintf(stderr, "[barcode file: %s]\n", argv[optind]); fprintf(stderr, "[fastq file1: %s]\n", argv[optind+1]); fprintf(stderr, "[fastq file2: %s]\n", argv[optind+2]); fprintf(stderr, "[number of mismatches allowed: %u]\n", num_mismatches); fprintf(stderr, "[number of spacer bases: %u]\n", num_spacer_bases); fprintf(stderr, "[output prefix: %s]\n", out_prefix); fprintf(stderr, "[only count: %s]\n", only_count ? "true" : "false"); /* read barcode file */ if ((fp = fopen(argv[optind], "r")) == NULL) { fprintf(stderr, "Error: cannot open barcode file %s\n", argv[optind]); return -1; } while (fscanf(fp, "%s %s", bc_id, bc_seq) == 2) { bc_len = strlen(bc_seq); bc.id = strdup(bc_id); bc.seq = strdup(bc_seq); bc.num_found = 0; if (!only_count) { fn = (char*)calloc(strlen(out_prefix) + 3 + strlen(bc_id) + 6 + 1, sizeof(char)); strcpy(fn, out_prefix); strcat(fn, "_1_"); strcat(fn, bc_id); strcat(fn, ".fq.gz"); bc.fp1 = gzopen(fn, "w"); fn[strlen(out_prefix)+1] = '2'; bc.fp2 = gzopen(fn, "w"); free(fn); } else { bc.fp1 = NULL; bc.fp2 = NULL; } ARRAY_PUSH(&bcs, BcRec, bc); k = kh_put(str, h, strdup(bc_seq), &ret); if (num_mismatches == 0) { kh_val(h, k) = bcs.nextfree - 1; //printf("setting %s to %lu (%s %s)\n", bc_seq, bcs.nextfree - 1, bcs.elems[bcs.nextfree - 1].seq, bcs.elems[bcs.nextfree - 1].id); } else { for (i=0; i<strlen(bc_seq); i++) { strcpy(bc_seq_cpy, bc_seq); for (j=0; j<dna_alpha_len; j++) { bc_seq_cpy[i] = DNA_ALPHA[j]; k = kh_put(str, h, strdup(bc_seq_cpy), &ret); kh_val(h, k) = bcs.nextfree - 1; //printf("setting %s to %lu (%s %s)\n", bc_seq_cpy, bcs.nextfree - 1, bcs.elems[bcs.nextfree - 1].seq, bcs.elems[bcs.nextfree - 1].id); } } } } fclose(fp); if (bc_len == -1) { fprintf(stderr, "Error: could not find any barcodes in file %s\n", argv[optind]); return -1; } fp1 = gzopen(argv[optind+1], "r"); seq1 = kseq_init(fp1); fp2 = gzopen(argv[optind+2], "r"); seq2 = kseq_init(fp2); while (kseq_read(seq1) >= 0) { strncpy(bc_seq, seq1->seq.s, bc_len); k = kh_get(str, h, bc_seq); kseq_read(seq2); strncpy(bc_seq, seq2->seq.s, bc_len); k2 = kh_get(str, h, bc_seq); if (k != kh_end(h) || k2 != kh_end(h)) { bc_idx = k2 != kh_end(h) ? kh_val(h, k2) : kh_val(h, k); if (!only_count) { gzprintf(bcs.elems[bc_idx].fp1, "@%s %s\n%s\n+\n%s\n" , seq1->name.s , seq1->comment.s , seq1->seq.s+bc_len+num_spacer_bases , seq1->qual.s+bc_len+num_spacer_bases); gzprintf(bcs.elems[bc_idx].fp2, "@%s %s\n%s\n+\n%s\n" , seq2->name.s , seq2->comment.s , seq2->seq.s+bc_len+num_spacer_bases , seq2->qual.s+bc_len+num_spacer_bases); } bcs.elems[bc_idx].num_found += 2; } else { num_undetermined += 2; } } gzclose(fp1); gzclose(fp2); kseq_destroy(seq1); kseq_destroy(seq2); for (i=0; i<bcs.nextfree; i++) { printf("%s\t%s\t%u\n", bcs.elems[i].id, bcs.elems[i].seq, bcs.elems[i].num_found); if (!only_count) { gzclose(bcs.elems[i].fp1); gzclose(bcs.elems[i].fp2); } } printf("UNDETERMINED\tNONE\t%u\n", num_undetermined); ARRAY_FREE(&bcs); kh_destroy(str, h); fprintf(stderr, "[CPU time: %.2f sec]\n", (float)(clock() - t) / CLOCKS_PER_SEC); return 0; }
/** *YGH 35 */ static void aes_ccm_ciphertext_free(aes_ccm_ciphertext* aes_ccm_ciphertext){ if(NULL != aes_ccm_ciphertext->ccm_ciphertext.buf) ARRAY_FREE(&aes_ccm_ciphertext->ccm_ciphertext); }
int cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) { struct args *args = self->args; struct session *s, *old_s, *groupwith; struct window *w; struct window_pane *wp; struct environ env; struct termios tio, *tiop; struct passwd *pw; const char *newname, *target, *update, *cwd; char *overrides, *cmd, *cause; int detached, idx; u_int sx, sy, i; newname = args_get(args, 's'); if (newname != NULL && session_find(newname) != NULL) { ctx->error(ctx, "duplicate session: %s", newname); return (-1); } target = args_get(args, 't'); if (target != NULL) { groupwith = cmd_find_session(ctx, target); if (groupwith == NULL) return (-1); } else groupwith = NULL; /* * There are three cases: * * 1. If cmdclient is non-NULL, new-session has been called from the * command-line - cmdclient is to become a new attached, interactive * client. Unless -d is given, the terminal must be opened and then * the client sent MSG_READY. * * 2. If cmdclient is NULL, new-session has been called from an * existing client (such as a key binding). * * 3. Both are NULL, the command was in the configuration file. Treat * this as if -d was given even if it was not. * * In all cases, a new additional session needs to be created and * (unless -d) set as the current session for the client. */ /* Set -d if no client. */ detached = args_has(args, 'd'); if (ctx->cmdclient == NULL && ctx->curclient == NULL) detached = 1; /* * Save the termios settings, part of which is used for new windows in * this session. * * This is read again with tcgetattr() rather than using tty.tio as if * detached, tty_open won't be called. Because of this, it must be done * before opening the terminal as that calls tcsetattr() to prepare for * tmux taking over. */ if (ctx->cmdclient != NULL && ctx->cmdclient->tty.fd != -1) { if (tcgetattr(ctx->cmdclient->tty.fd, &tio) != 0) fatal("tcgetattr failed"); tiop = &tio; } else tiop = NULL; /* Open the terminal if necessary. */ if (!detached && ctx->cmdclient != NULL) { if (!(ctx->cmdclient->flags & CLIENT_TERMINAL)) { ctx->error(ctx, "not a terminal"); return (-1); } overrides = options_get_string(&global_s_options, "terminal-overrides"); if (tty_open(&ctx->cmdclient->tty, overrides, &cause) != 0) { ctx->error(ctx, "open terminal failed: %s", cause); xfree(cause); return (-1); } } /* Get the new session working directory. */ if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL) cwd = ctx->cmdclient->cwd; else { pw = getpwuid(getuid()); if (pw->pw_dir != NULL && *pw->pw_dir != '\0') cwd = pw->pw_dir; else cwd = "/"; } /* Find new session size. */ if (detached) { sx = 80; sy = 24; } else if (ctx->cmdclient != NULL) { sx = ctx->cmdclient->tty.sx; sy = ctx->cmdclient->tty.sy; } else { sx = ctx->curclient->tty.sx; sy = ctx->curclient->tty.sy; } if (sy > 0 && options_get_number(&global_s_options, "status")) sy--; if (sx == 0) sx = 1; if (sy == 0) sy = 1; /* Figure out the command for the new window. */ if (target != NULL) cmd = NULL; else if (args->argc != 0) cmd = args->argv[0]; else cmd = options_get_string(&global_s_options, "default-command"); /* Construct the environment. */ environ_init(&env); update = options_get_string(&global_s_options, "update-environment"); if (ctx->cmdclient != NULL) environ_update(update, &ctx->cmdclient->environ, &env); /* Create the new session. */ idx = -1 - options_get_number(&global_s_options, "base-index"); s = session_create(newname, cmd, cwd, &env, tiop, idx, sx, sy, &cause); if (s == NULL) { ctx->error(ctx, "create session failed: %s", cause); xfree(cause); return (-1); } environ_free(&env); /* Set the initial window name if one given. */ if (cmd != NULL && args_has(args, 'n')) { w = s->curw->window; xfree(w->name); w->name = xstrdup(args_get(args, 'n')); options_set_number(&w->options, "automatic-rename", 0); } /* * If a target session is given, this is to be part of a session group, * so add it to the group and synchronize. */ if (groupwith != NULL) { session_group_add(groupwith, s); session_group_synchronize_to(s); session_select(s, RB_ROOT(&s->windows)->idx); } /* * Set the client to the new session. If a command client exists, it is * taking this session and needs to get MSG_READY and stay around. */ if (!detached) { if (ctx->cmdclient != NULL) { server_write_client(ctx->cmdclient, MSG_READY, NULL, 0); old_s = ctx->cmdclient->session; if (old_s != NULL) ctx->cmdclient->last_session = old_s; ctx->cmdclient->session = s; session_update_activity(s); server_redraw_client(ctx->cmdclient); } else { old_s = ctx->curclient->session; if (old_s != NULL) ctx->curclient->last_session = old_s; ctx->curclient->session = s; session_update_activity(s); server_redraw_client(ctx->curclient); } } recalculate_sizes(); server_update_socket(); /* * If there are still configuration file errors to display, put the new * session's current window into more mode and display them now. */ if (cfg_finished && !ARRAY_EMPTY(&cfg_causes)) { wp = s->curw->window->active; window_pane_set_mode(wp, &window_copy_mode); window_copy_init_for_output(wp); for (i = 0; i < ARRAY_LENGTH(&cfg_causes); i++) { cause = ARRAY_ITEM(&cfg_causes, i); window_copy_add(wp, "%s", cause); xfree(cause); } ARRAY_FREE(&cfg_causes); } return (!detached); /* 1 means don't tell command client to exit */ }