LINUX.ORG.RU

История изменений

Исправление sambist, (текущая версия) :

Где-то всё равно будет case A:a();case B:b();default: return ERROR;

Ну и тогда какая разница? Сделаю я в каждую функцию ctrl+c/ctrl+v так:

    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ALIASED    )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ANTIALIASED)) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ONLYPOINTS ))) > 1)
        return SML_ERR_BADVALUE;

// Это только для всех, кроме DrawLine и DrawCurve
    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOFIRSTPIXEL )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOLASTPIXEL  ))) > 0) 
        return SML_ERR_BADVALUE;

Или во всех функциях менять сигнатуры вызова, добавлять дополнительный switch-case, и что там еще.

Исправление sambist, :

Где-то всё равно будет case A:a();case B:b();default: return ERROR;

Ну и тогда какая разница? Сделаю я в каждую функцию ctrl+c/ctrl+v так:

    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ALIASED    )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ANTIALIASED)) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ONLYPOINTS ))) > 1)
        return SML_ERR_BADVALUE;

    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOFIRSTPIXEL )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOLASTPIXEL  ))) > 0) // Это только для всех, кроме DrawLine и DrawCurve
        return SML_ERR_BADVALUE;

Или во всех функциях менять сигнатуры вызова, добавлять дополнительный switch-case, и что там еще.

Исходная версия sambist, :

Где-то всё равно будет case A:a();case B:b();default: return ERROR;

Ну и тогда какая разница? Сделаю я в каждую функцию ctrl+c/ctrl+v так:

    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ALIASED    )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ANTIALIASED)) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_ONLYPOINTS ))) > 1)
        return SML_ERR_BADVALUE;

    if ((SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOFIRSTPIXEL )) +
         SmlSgn(SML_FLAGISSET(lstyle, SML_LINE_NOLASTPIXEL  ))) > 0)
        return SML_ERR_BADVALUE;

Или во всех функциях менять сигнатуры вызова, добавлять дополнительный switch-case, и что там еще.