#ifndef SETFMTST_DEFINED #define SETFMTST_DEFINED #include "zqfromza.h" #include "lsdefs.h" /* M A X */ /*---------------------------------------------------------------------------- %%Macro: Max %%Contact: igorzv Returns the maximum of two values a and b. ----------------------------------------------------------------------------*/ #define Max(a,b) ((a) < (b) ? (b) : (a)) #define SetDnodeToFinish(plsc, plsdn) ((plsc)->lslistcontext.plsdnToFinish = plsdn) #define SetCurrentSubline(plsc, plssubl) ((plsc)->lslistcontext.plssublCurrent = plssubl) #define AdvanceCurrentCpLimSubl(plssubl, dcp) ((plssubl)->cpLim += dcp) #define AdvanceCurrentCpLim(plsc, dcp) AdvanceCurrentCpLimSubl(GetCurrentSubline(plsc), dcp) #define SetCurrentCpLimSubl(plssubl, cp) ((plssubl)->cpLim = cp) #define SetCurrentCpLim(plsc, cp) SetCurrentCpLimSubl(GetCurrentSubline(plsc), cp) #define SetCurrentUrSubl(plssubl, ur) ((plssubl)->urCur = ur) #define SetCurrentUr(plsc, ur) SetCurrentUrSubl(GetCurrentSubline(plsc), ur) #define SetCurrentVrSubl(plssubl, vr) ((plssubl)->vrCur = vr) #define SetCurrentVr(plsc, vr) SetCurrentVrSubl(GetCurrentSubline(plsc), vr) #define AdvanceCurrentUrSubl(plssubl, dur) if ((plssubl)->urCur >= uLsInfiniteRM - dur) \ return lserrTooLongParagraph; \ ((plssubl)->urCur += dur); #define AdvanceCurrentUr(plsc, dur) AdvanceCurrentUrSubl(GetCurrentSubline(plsc), dur) #define AdvanceCurrentVrSubl(plssubl, dvr) if ((plssubl)->vrCur >= uLsInfiniteRM - dvr) \ return lserrTooLongParagraph; \ ((plssubl)->vrCur += dvr); #define AdvanceCurrentVr(plsc, dvr) AdvanceCurrentVrSubl(GetCurrentSubline(plsc), dvr) #define SetCurrentDnodeSubl(plssubl, plsdn) ((plssubl)->plsdnLast = (plsdn)); \ if ((plsdn) == NULL) ((plssubl)->plsdnFirst = NULL); #define SetCurrentDnode(plsc, plsdn) SetCurrentDnodeSubl(GetCurrentSubline(plsc), plsdn) #define SetBreakthroughLine(plsc, urRightMargin) \ (plsc)->plslineCur->lslinfo.fTabInMarginExLine = fTrue; \ (plsc)->lsadjustcontext.urRightMarginJustify = \ (plsc)->urRightMarginBreak == 0 ? \ (plsc)->lsadjustcontext.urRightMarginJustify + (urRightMargin) \ : \ ((plsc)->lsadjustcontext.urRightMarginJustify / \ (plsc)->urRightMarginBreak )\ * (urRightMargin); \ (plsc)->urRightMarginBreak = (urRightMargin); \ (plsc)->plslineCur->lssubl.urColumnMax = (urRightMargin); \ #define IncreaseFormatDepth(plsc) ((plsc)->lslistcontext.nDepthFormatLineCurrent++, \ (plsc)->plslineCur->lslinfo.nDepthFormatLineMax = \ Max((plsc)->lslistcontext.nDepthFormatLineCurrent, \ (plsc)->plslineCur->lslinfo.nDepthFormatLineMax)) #define DecreaseFormatDepth(plsc) ((plsc)->lslistcontext.nDepthFormatLineCurrent--) #define SetCpLimDisplaySubl(plssubl, cp) ((plssubl)->cpLimDisplay = cp) #define SetCpLimDisplay(plsc, cp) SetCpLimDisplaySubl(GetCurrentSubline(plsc), cp) #define SetLastDnodeDisplaySubl(plssubl, plsdn) ((plssubl)->plsdnLastDisplay = plsdn) #define SetLastDnodeDisplay(plsc, plsdn) SetLastDnodeDisplaySubl(GetCurrentSubline(plsc), plsdn) #endif /* SETFMTST_DEFINED */