This patch code resolves an issue with SmartClient versions 7.0rc2 and 8.0 whereby generated HTML for Button and SectionHeader could be incomplete in some cases. This typically had no user-visible impact except when putting together HTML for the print-view of these components.

Code:
if (window.isc != null) {
    
    if (isc.version.startsWith("7.0rc2/") || 
        isc.version.startsWith("SC_SNAPSHOT-2011-01-05/")) 
    {
        
        isc.Button.addProperties({
            fillInCell:function (_1, _2) {
                var _3 = this.isRTL();
                var _4 = this.getTitleHTML();
                if (!this.icon) {
                    if (isc.Browser.isMoz) {
                        var _5 = this.reliableMinHeight;
                        _1[_2] = _5 ? "<div>" : null;
                        _1[_2 + 1] = _4;
                        _1[_2 + 2] = _5 ? "</div>" : null;
                        this.$5c(_1, _2 + 3);
                    } else {
                        _1[_2] = _4;
                        this.$5c(_1, _2 + 1);
                    }
                    return;
                }
                var _6 = this.iconOrientation != this.$o1, _7 = this.$5d();
                if (this.noIconSubtable) {
                    var _8 = isc.Canvas.spacerHTML(this.iconSpacing, 1);
                    _1[_2] = _6 ? isc.SB.concat(_7, _8, _4) : isc.SB.concat(_4, _8, _7);
                    this.$5c(_1, _2 + 1);
                    return;
                }
                var _9 = this.$5b(), _10;
                if (_9) {
                    _10 = (this.iconWidth ? this.iconWidth : this.iconSize) + this.iconSpacing;
                }
                _1[_2] = _9 ? this.$4i : this.$4h;
                var _11 = this.isPrinting ? this.getPrintStyleName() : this.titleStyle ? this.titleStyle + (this.isDisabled() ? isc.StatefulCanvas.STATE_DISABLED : isc.emptyString) : this.getStateName();
                if (_6) {
                    _1[++_2] = this.$4n;
                    _1[++_2] = _11;
                    _1[++_2] = this.$4o;
                    _1[++_2] = !_3 ? this.$4j : this.$4k;
                    _1[++_2] = this.iconSpacing;
                    if (_9) {
                        _1[++_2] = "px;width:";
                        _1[++_2] = _10;
                    }
                    _1[++_2] = this.$4l;
                    _1[++_2] = _7;
                    _1[++_2] = this.$4m;
                    _1[++_2] = this.$4n;
                    _1[++_2] = _11;
                    _1[++_2] = this.$4o;
                    if (_9) {
                        _1[++_2] = "' align='";
                        _1[++_2] = this.align;
                    }
                    _1[++_2] = this.wrap ? this.$4p : this.$4q;
                    _1[++_2] = _4;
                } else {
                    _1[++_2] = this.$4n;
                    _1[++_2] = _11;
                    _1[++_2] = this.$4o;
                    if (_9) {
                        _1[++_2] = "' align='";
                        _1[++_2] = this.align;
                    }
                    _1[++_2] = this.wrap ? this.$4p : this.$4q;
                    _1[++_2] = _4;
                    _1[++_2] = this.$4m;
                    _1[++_2] = this.$4n;
                    _1[++_2] = _11;
                    _1[++_2] = this.$4o;
                    _1[++_2] = !_3 ? this.$4k : this.$4j;
                    _1[++_2] = this.iconSpacing;
                    if (_9) {
                        _1[++_2] = "px;width:";
                        _1[++_2] = _10;
                    }
                    _1[++_2] = this.$4l;
                    _1[++_2] = _7;
                }
                _1[++_2] = this.$4r;
                this.$5c(_1, _2+1);
            }
        });
    
    } else {
        isc.Log.logWarn("Patch code for SmartClient versions 7.0rc2 and 8.0 [full version string: 'SC_SNAPSHOT-2011-01-05/'] " +
            "included in this application. You are running SmartClient version " +
            isc.version + ". The patch code will have no effect in this application and should be removed.");
    }
}