From 56b3fc7a8cf42e5b5b62b74df36f656e3a2b99f1 Mon Sep 17 00:00:00 2001 From: "caillon%redhat.com" Date: Wed, 5 May 2004 21:37:32 +0000 Subject: [PATCH] Remove '-moz-resizer' from the style system. Bug 242712. r+sr=dbaron --- content/base/src/nsRuleNode.cpp | 14 -------------- content/base/src/nsStyleContext.cpp | 5 ++--- content/html/style/src/nsCSSParser.cpp | 3 --- content/html/style/src/nsCSSStruct.cpp | 2 -- content/html/style/src/nsCSSStruct.h | 1 - content/html/style/src/nsHTMLCSSStyleSheet.cpp | 1 - content/shared/public/nsCSSPropList.h | 1 - content/shared/public/nsCSSProps.h | 1 - content/shared/public/nsStyleStruct.h | 1 - content/shared/src/nsCSSProps.cpp | 7 ------- content/shared/src/nsStyleStruct.cpp | 5 +---- dom/public/idl/css/nsIDOMCSS2Properties.idl | 3 --- layout/base/nsStyleConsts.h | 7 ------- layout/base/public/nsStyleConsts.h | 7 ------- layout/style/nsCSSParser.cpp | 3 --- layout/style/nsCSSPropList.h | 1 - layout/style/nsCSSProps.cpp | 7 ------- layout/style/nsCSSProps.h | 1 - layout/style/nsCSSStruct.cpp | 2 -- layout/style/nsCSSStruct.h | 1 - layout/style/nsHTMLCSSStyleSheet.cpp | 1 - layout/style/nsRuleNode.cpp | 14 -------------- layout/style/nsStyleContext.cpp | 5 ++--- layout/style/nsStyleStruct.cpp | 5 +---- layout/style/nsStyleStruct.h | 1 - 25 files changed, 6 insertions(+), 93 deletions(-) diff --git a/content/base/src/nsRuleNode.cpp b/content/base/src/nsRuleNode.cpp index c5eaeef6d08e..20f8c44c7144 100644 --- a/content/base/src/nsRuleNode.cpp +++ b/content/base/src/nsRuleNode.cpp @@ -2442,20 +2442,6 @@ nsRuleNode::ComputeUIResetData(nsStyleStruct* aStartData, ui->mKeyEquivalent = parentUI->mKeyEquivalent; } } - // resizer: auto, none, enum, inherit - if (eCSSUnit_Enumerated == uiData.mResizer.GetUnit()) { - ui->mResizer = uiData.mResizer.GetIntValue(); - } - else if (eCSSUnit_Auto == uiData.mResizer.GetUnit()) { - ui->mResizer = NS_STYLE_RESIZER_AUTO; - } - else if (eCSSUnit_None == uiData.mResizer.GetUnit()) { - ui->mResizer = NS_STYLE_RESIZER_NONE; - } - else if (eCSSUnit_Inherit == uiData.mResizer.GetUnit()) { - inherited = PR_TRUE; - ui->mResizer = parentUI->mResizer; - } // force-broken-image-icons: integer if (eCSSUnit_Integer == uiData.mForceBrokenImageIcon.GetUnit()) { diff --git a/content/base/src/nsStyleContext.cpp b/content/base/src/nsStyleContext.cpp index 3966a2b462de..bdad63db4e61 100644 --- a/content/base/src/nsStyleContext.cpp +++ b/content/base/src/nsStyleContext.cpp @@ -802,10 +802,9 @@ void nsStyleContext::DumpRegressionData(nsIPresContext* aPresContext, FILE* out, // UIReset IndentBy(out,aIndent); const nsStyleUIReset* uiReset = GetStyleUIReset(); - fprintf(out, "\n", + fprintf(out, "\n", (int)uiReset->mUserSelect, - (int)uiReset->mKeyEquivalent, - (int)uiReset->mResizer); + (int)uiReset->mKeyEquivalent); // XUL IndentBy(out,aIndent); diff --git a/content/html/style/src/nsCSSParser.cpp b/content/html/style/src/nsCSSParser.cpp index f97cbc4d374e..a7e619826ca6 100644 --- a/content/html/style/src/nsCSSParser.cpp +++ b/content/html/style/src/nsCSSParser.cpp @@ -4339,9 +4339,6 @@ PRBool CSSParserImpl::ParseSingleValueProperty(nsresult& aErrorCode, return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); case eCSSProperty_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kPositionKTable); - case eCSSProperty_resizer: - return ParseVariant(aErrorCode, aValue, VARIANT_AHK | VARIANT_NONE, - nsCSSProps::kResizerKTable); case eCSSProperty_richness: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); case eCSSProperty_speak: diff --git a/content/html/style/src/nsCSSStruct.cpp b/content/html/style/src/nsCSSStruct.cpp index 9588b5e32ebe..ece41ed3734d 100644 --- a/content/html/style/src/nsCSSStruct.cpp +++ b/content/html/style/src/nsCSSStruct.cpp @@ -1004,7 +1004,6 @@ nsCSSUserInterface::nsCSSUserInterface(const nsCSSUserInterface& aCopy) mUserSelect(aCopy.mUserSelect), mKeyEquivalent(nsnull), mUserFocus(aCopy.mUserFocus), - mResizer(aCopy.mResizer), mCursor(nsnull), mForceBrokenImageIcon(aCopy.mForceBrokenImageIcon) { @@ -1036,7 +1035,6 @@ void nsCSSUserInterface::List(FILE* out, PRInt32 aIndent) const keyEquiv= keyEquiv->mNext; } mUserFocus.AppendToString(buffer, eCSSProperty_user_focus); - mResizer.AppendToString(buffer, eCSSProperty_resizer); nsCSSValueList* cursor = mCursor; while (nsnull != cursor) { diff --git a/content/html/style/src/nsCSSStruct.h b/content/html/style/src/nsCSSStruct.h index 352b072cc571..7fa11868cc95 100644 --- a/content/html/style/src/nsCSSStruct.h +++ b/content/html/style/src/nsCSSStruct.h @@ -446,7 +446,6 @@ struct nsCSSUserInterface : public nsCSSStruct { // NEW nsCSSValue mUserSelect; nsCSSValueList* mKeyEquivalent; nsCSSValue mUserFocus; - nsCSSValue mResizer; nsCSSValueList* mCursor; nsCSSValue mForceBrokenImageIcon; diff --git a/content/html/style/src/nsHTMLCSSStyleSheet.cpp b/content/html/style/src/nsHTMLCSSStyleSheet.cpp index c3ee2e7f1663..ce54ae824ef3 100644 --- a/content/html/style/src/nsHTMLCSSStyleSheet.cpp +++ b/content/html/style/src/nsHTMLCSSStyleSheet.cpp @@ -244,7 +244,6 @@ CSSDisablePropsRule::CommonMapRuleInfoInto(nsRuleData* aData) if (aData->mSID == eStyleStruct_UIReset) { nsCSSValue autovalue(eCSSUnit_Auto); nsCSSValue none(eCSSUnit_None); - aData->mUserInterfaceData->mResizer = autovalue; // XXX |mKeyEquivalent| is a pain, because we have to have our own cursor // structure allocated. // Don't bother with '-moz-force-broken-image-icon' since it's only diff --git a/content/shared/public/nsCSSPropList.h b/content/shared/public/nsCSSPropList.h index 64063ec261a3..1281a2fc4c8b 100644 --- a/content/shared/public/nsCSSPropList.h +++ b/content/shared/public/nsCSSPropList.h @@ -438,7 +438,6 @@ CSS_PROP_BACKENDONLY(-x-play-during-uri, play_during_uri, PlayDuringURI, Aural, #endif /* !defined (CSS_PROP_LIST_EXCLUDE_INTERNAL) */ CSS_PROP_DISPLAY(position, position, Position, Display, mPosition, eCSSType_Value, PR_FALSE, kPositionKTable) CSS_PROP_QUOTES(quotes, quotes, Quotes, Content, mQuotes, eCSSType_Quotes, PR_FALSE, nsnull) -CSS_PROP_UIRESET(-moz-resizer, resizer, MozResizer, UserInterface, mResizer, eCSSType_Value, PR_FALSE, kResizerKTable) // XXX bug 3935 CSS_PROP_BACKENDONLY(richness, richness, Richness, Aural, mRichness, eCSSType_Value, PR_FALSE, nsnull) CSS_PROP_POSITION(right, right, Right, Position, mOffset.mRight, eCSSType_Value, PR_TRUE, nsnull) CSS_PROP_SHORTHAND(size, size, Size) diff --git a/content/shared/public/nsCSSProps.h b/content/shared/public/nsCSSProps.h index f58c759924bd..0da4a705dcc8 100644 --- a/content/shared/public/nsCSSProps.h +++ b/content/shared/public/nsCSSProps.h @@ -156,7 +156,6 @@ public: static const PRInt32 kPitchKTable[]; static const PRInt32 kPlayDuringKTable[]; static const PRInt32 kPositionKTable[]; - static const PRInt32 kResizerKTable[]; static const PRInt32 kSpeakKTable[]; static const PRInt32 kSpeakHeaderKTable[]; static const PRInt32 kSpeakNumeralKTable[]; diff --git a/content/shared/public/nsStyleStruct.h b/content/shared/public/nsStyleStruct.h index d3a67c9a2906..13e28d19f547 100644 --- a/content/shared/public/nsStyleStruct.h +++ b/content/shared/public/nsStyleStruct.h @@ -1080,7 +1080,6 @@ struct nsStyleUIReset: public nsStyleStruct { PRUnichar mKeyEquivalent; // [reset] XXX what type should this be? PRUint8 mUserSelect; // [reset] (selection-style) - PRUint8 mResizer; // [reset] PRUint8 mForceBrokenImageIcon; // [reset] (0 if not forcing, otherwise forcing) }; diff --git a/content/shared/src/nsCSSProps.cpp b/content/shared/src/nsCSSProps.cpp index c1bdcac9082f..bca37d1a9d04 100644 --- a/content/shared/src/nsCSSProps.cpp +++ b/content/shared/src/nsCSSProps.cpp @@ -731,13 +731,6 @@ const PRInt32 nsCSSProps::kPositionKTable[] = { -1,-1 }; -const PRInt32 nsCSSProps::kResizerKTable[] = { - eCSSKeyword_both, NS_STYLE_RESIZER_BOTH, - eCSSKeyword_horizontal, NS_STYLE_RESIZER_HORIZONTAL, - eCSSKeyword_vertical, NS_STYLE_RESIZER_VERTICAL, - -1,-1 -}; - const PRInt32 nsCSSProps::kSpeakKTable[] = { eCSSKeyword_spell_out, NS_STYLE_SPEAK_SPELL_OUT, -1,-1 diff --git a/content/shared/src/nsStyleStruct.cpp b/content/shared/src/nsStyleStruct.cpp index 514c2e2e145a..ffce9f2c0965 100644 --- a/content/shared/src/nsStyleStruct.cpp +++ b/content/shared/src/nsStyleStruct.cpp @@ -1416,7 +1416,6 @@ nsStyleUIReset::nsStyleUIReset(void) { mUserSelect = NS_STYLE_USER_SELECT_AUTO; mKeyEquivalent = PRUnichar(0); // XXX what type should this be? - mResizer = NS_STYLE_RESIZER_AUTO; mForceBrokenImageIcon = 0; } @@ -1424,7 +1423,6 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) { mUserSelect = aSource.mUserSelect; mKeyEquivalent = aSource.mKeyEquivalent; - mResizer = aSource.mResizer; mForceBrokenImageIcon = aSource.mForceBrokenImageIcon; } @@ -1435,8 +1433,7 @@ nsStyleUIReset::~nsStyleUIReset(void) nsChangeHint nsStyleUIReset::CalcDifference(const nsStyleUIReset& aOther) const { if (mForceBrokenImageIcon == aOther.mForceBrokenImageIcon) { - if (mResizer == aOther.mResizer && - mUserSelect == aOther.mUserSelect) { + if (mUserSelect == aOther.mUserSelect) { // ignore mKeyEquivalent return NS_STYLE_HINT_NONE; } diff --git a/dom/public/idl/css/nsIDOMCSS2Properties.idl b/dom/public/idl/css/nsIDOMCSS2Properties.idl index 180e63000dfa..7453b6492333 100644 --- a/dom/public/idl/css/nsIDOMCSS2Properties.idl +++ b/dom/public/idl/css/nsIDOMCSS2Properties.idl @@ -538,9 +538,6 @@ interface nsIDOMNSCSS2Properties : nsIDOMCSS2Properties attribute DOMString MozPaddingStart; // raises(DOMException) on setting - attribute DOMString MozResizer; - // raises(DOMException) on setting - attribute DOMString MozUserFocus; // raises(DOMException) on setting diff --git a/layout/base/nsStyleConsts.h b/layout/base/nsStyleConsts.h index a29a16b357d7..5450842a04d4 100644 --- a/layout/base/nsStyleConsts.h +++ b/layout/base/nsStyleConsts.h @@ -67,13 +67,6 @@ // key-equivalent #define NS_STYLE_KEY_EQUIVALENT_NONE 0 -// resizer -#define NS_STYLE_RESIZER_NONE 0x00 -#define NS_STYLE_RESIZER_HORIZONTAL 0x01 // bits -#define NS_STYLE_RESIZER_VERTICAL 0x02 // bits -#define NS_STYLE_RESIZER_BOTH 0x03 // bits -#define NS_STYLE_RESIZER_AUTO 0x04 // bits - // user-focus #define NS_STYLE_USER_FOCUS_NONE 0 #define NS_STYLE_USER_FOCUS_IGNORE 1 diff --git a/layout/base/public/nsStyleConsts.h b/layout/base/public/nsStyleConsts.h index a29a16b357d7..5450842a04d4 100644 --- a/layout/base/public/nsStyleConsts.h +++ b/layout/base/public/nsStyleConsts.h @@ -67,13 +67,6 @@ // key-equivalent #define NS_STYLE_KEY_EQUIVALENT_NONE 0 -// resizer -#define NS_STYLE_RESIZER_NONE 0x00 -#define NS_STYLE_RESIZER_HORIZONTAL 0x01 // bits -#define NS_STYLE_RESIZER_VERTICAL 0x02 // bits -#define NS_STYLE_RESIZER_BOTH 0x03 // bits -#define NS_STYLE_RESIZER_AUTO 0x04 // bits - // user-focus #define NS_STYLE_USER_FOCUS_NONE 0 #define NS_STYLE_USER_FOCUS_IGNORE 1 diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index f97cbc4d374e..a7e619826ca6 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -4339,9 +4339,6 @@ PRBool CSSParserImpl::ParseSingleValueProperty(nsresult& aErrorCode, return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); case eCSSProperty_position: return ParseVariant(aErrorCode, aValue, VARIANT_HK, nsCSSProps::kPositionKTable); - case eCSSProperty_resizer: - return ParseVariant(aErrorCode, aValue, VARIANT_AHK | VARIANT_NONE, - nsCSSProps::kResizerKTable); case eCSSProperty_richness: return ParseVariant(aErrorCode, aValue, VARIANT_HN, nsnull); case eCSSProperty_speak: diff --git a/layout/style/nsCSSPropList.h b/layout/style/nsCSSPropList.h index 64063ec261a3..1281a2fc4c8b 100644 --- a/layout/style/nsCSSPropList.h +++ b/layout/style/nsCSSPropList.h @@ -438,7 +438,6 @@ CSS_PROP_BACKENDONLY(-x-play-during-uri, play_during_uri, PlayDuringURI, Aural, #endif /* !defined (CSS_PROP_LIST_EXCLUDE_INTERNAL) */ CSS_PROP_DISPLAY(position, position, Position, Display, mPosition, eCSSType_Value, PR_FALSE, kPositionKTable) CSS_PROP_QUOTES(quotes, quotes, Quotes, Content, mQuotes, eCSSType_Quotes, PR_FALSE, nsnull) -CSS_PROP_UIRESET(-moz-resizer, resizer, MozResizer, UserInterface, mResizer, eCSSType_Value, PR_FALSE, kResizerKTable) // XXX bug 3935 CSS_PROP_BACKENDONLY(richness, richness, Richness, Aural, mRichness, eCSSType_Value, PR_FALSE, nsnull) CSS_PROP_POSITION(right, right, Right, Position, mOffset.mRight, eCSSType_Value, PR_TRUE, nsnull) CSS_PROP_SHORTHAND(size, size, Size) diff --git a/layout/style/nsCSSProps.cpp b/layout/style/nsCSSProps.cpp index c1bdcac9082f..bca37d1a9d04 100644 --- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -731,13 +731,6 @@ const PRInt32 nsCSSProps::kPositionKTable[] = { -1,-1 }; -const PRInt32 nsCSSProps::kResizerKTable[] = { - eCSSKeyword_both, NS_STYLE_RESIZER_BOTH, - eCSSKeyword_horizontal, NS_STYLE_RESIZER_HORIZONTAL, - eCSSKeyword_vertical, NS_STYLE_RESIZER_VERTICAL, - -1,-1 -}; - const PRInt32 nsCSSProps::kSpeakKTable[] = { eCSSKeyword_spell_out, NS_STYLE_SPEAK_SPELL_OUT, -1,-1 diff --git a/layout/style/nsCSSProps.h b/layout/style/nsCSSProps.h index f58c759924bd..0da4a705dcc8 100644 --- a/layout/style/nsCSSProps.h +++ b/layout/style/nsCSSProps.h @@ -156,7 +156,6 @@ public: static const PRInt32 kPitchKTable[]; static const PRInt32 kPlayDuringKTable[]; static const PRInt32 kPositionKTable[]; - static const PRInt32 kResizerKTable[]; static const PRInt32 kSpeakKTable[]; static const PRInt32 kSpeakHeaderKTable[]; static const PRInt32 kSpeakNumeralKTable[]; diff --git a/layout/style/nsCSSStruct.cpp b/layout/style/nsCSSStruct.cpp index 9588b5e32ebe..ece41ed3734d 100644 --- a/layout/style/nsCSSStruct.cpp +++ b/layout/style/nsCSSStruct.cpp @@ -1004,7 +1004,6 @@ nsCSSUserInterface::nsCSSUserInterface(const nsCSSUserInterface& aCopy) mUserSelect(aCopy.mUserSelect), mKeyEquivalent(nsnull), mUserFocus(aCopy.mUserFocus), - mResizer(aCopy.mResizer), mCursor(nsnull), mForceBrokenImageIcon(aCopy.mForceBrokenImageIcon) { @@ -1036,7 +1035,6 @@ void nsCSSUserInterface::List(FILE* out, PRInt32 aIndent) const keyEquiv= keyEquiv->mNext; } mUserFocus.AppendToString(buffer, eCSSProperty_user_focus); - mResizer.AppendToString(buffer, eCSSProperty_resizer); nsCSSValueList* cursor = mCursor; while (nsnull != cursor) { diff --git a/layout/style/nsCSSStruct.h b/layout/style/nsCSSStruct.h index 352b072cc571..7fa11868cc95 100644 --- a/layout/style/nsCSSStruct.h +++ b/layout/style/nsCSSStruct.h @@ -446,7 +446,6 @@ struct nsCSSUserInterface : public nsCSSStruct { // NEW nsCSSValue mUserSelect; nsCSSValueList* mKeyEquivalent; nsCSSValue mUserFocus; - nsCSSValue mResizer; nsCSSValueList* mCursor; nsCSSValue mForceBrokenImageIcon; diff --git a/layout/style/nsHTMLCSSStyleSheet.cpp b/layout/style/nsHTMLCSSStyleSheet.cpp index c3ee2e7f1663..ce54ae824ef3 100644 --- a/layout/style/nsHTMLCSSStyleSheet.cpp +++ b/layout/style/nsHTMLCSSStyleSheet.cpp @@ -244,7 +244,6 @@ CSSDisablePropsRule::CommonMapRuleInfoInto(nsRuleData* aData) if (aData->mSID == eStyleStruct_UIReset) { nsCSSValue autovalue(eCSSUnit_Auto); nsCSSValue none(eCSSUnit_None); - aData->mUserInterfaceData->mResizer = autovalue; // XXX |mKeyEquivalent| is a pain, because we have to have our own cursor // structure allocated. // Don't bother with '-moz-force-broken-image-icon' since it's only diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp index c5eaeef6d08e..20f8c44c7144 100644 --- a/layout/style/nsRuleNode.cpp +++ b/layout/style/nsRuleNode.cpp @@ -2442,20 +2442,6 @@ nsRuleNode::ComputeUIResetData(nsStyleStruct* aStartData, ui->mKeyEquivalent = parentUI->mKeyEquivalent; } } - // resizer: auto, none, enum, inherit - if (eCSSUnit_Enumerated == uiData.mResizer.GetUnit()) { - ui->mResizer = uiData.mResizer.GetIntValue(); - } - else if (eCSSUnit_Auto == uiData.mResizer.GetUnit()) { - ui->mResizer = NS_STYLE_RESIZER_AUTO; - } - else if (eCSSUnit_None == uiData.mResizer.GetUnit()) { - ui->mResizer = NS_STYLE_RESIZER_NONE; - } - else if (eCSSUnit_Inherit == uiData.mResizer.GetUnit()) { - inherited = PR_TRUE; - ui->mResizer = parentUI->mResizer; - } // force-broken-image-icons: integer if (eCSSUnit_Integer == uiData.mForceBrokenImageIcon.GetUnit()) { diff --git a/layout/style/nsStyleContext.cpp b/layout/style/nsStyleContext.cpp index 3966a2b462de..bdad63db4e61 100644 --- a/layout/style/nsStyleContext.cpp +++ b/layout/style/nsStyleContext.cpp @@ -802,10 +802,9 @@ void nsStyleContext::DumpRegressionData(nsIPresContext* aPresContext, FILE* out, // UIReset IndentBy(out,aIndent); const nsStyleUIReset* uiReset = GetStyleUIReset(); - fprintf(out, "\n", + fprintf(out, "\n", (int)uiReset->mUserSelect, - (int)uiReset->mKeyEquivalent, - (int)uiReset->mResizer); + (int)uiReset->mKeyEquivalent); // XUL IndentBy(out,aIndent); diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index 514c2e2e145a..ffce9f2c0965 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -1416,7 +1416,6 @@ nsStyleUIReset::nsStyleUIReset(void) { mUserSelect = NS_STYLE_USER_SELECT_AUTO; mKeyEquivalent = PRUnichar(0); // XXX what type should this be? - mResizer = NS_STYLE_RESIZER_AUTO; mForceBrokenImageIcon = 0; } @@ -1424,7 +1423,6 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) { mUserSelect = aSource.mUserSelect; mKeyEquivalent = aSource.mKeyEquivalent; - mResizer = aSource.mResizer; mForceBrokenImageIcon = aSource.mForceBrokenImageIcon; } @@ -1435,8 +1433,7 @@ nsStyleUIReset::~nsStyleUIReset(void) nsChangeHint nsStyleUIReset::CalcDifference(const nsStyleUIReset& aOther) const { if (mForceBrokenImageIcon == aOther.mForceBrokenImageIcon) { - if (mResizer == aOther.mResizer && - mUserSelect == aOther.mUserSelect) { + if (mUserSelect == aOther.mUserSelect) { // ignore mKeyEquivalent return NS_STYLE_HINT_NONE; } diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h index d3a67c9a2906..13e28d19f547 100644 --- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h @@ -1080,7 +1080,6 @@ struct nsStyleUIReset: public nsStyleStruct { PRUnichar mKeyEquivalent; // [reset] XXX what type should this be? PRUint8 mUserSelect; // [reset] (selection-style) - PRUint8 mResizer; // [reset] PRUint8 mForceBrokenImageIcon; // [reset] (0 if not forcing, otherwise forcing) };