accessmanager.h   accessmanager.h 
/* /*
* This file is part of the KDE project. * This file is part of the KDE project.
* *
* Copyright (C) 2008 - 2009 Urs Wolfer <uwolfer @ kde.org> * Copyright (C) 2008 - 2009 Urs Wolfer <uwolfer @ kde.org>
* Copyright (C) 2009 - 2012 Dawit Alemayehu <adawit @ kde.org>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details. * Library General Public License for more details.
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 kdeversion.h   kdeversion.h 
skipping to change at line 47 skipping to change at line 47
* This macro contains the KDE version in string form. As it is a macro, * This macro contains the KDE version in string form. As it is a macro,
* it contains the version at compile time. See versionString() if you need * it contains the version at compile time. See versionString() if you need
* the KDE version used at runtime. * the KDE version used at runtime.
* *
* @note The version string might contain a section in parentheses, * @note The version string might contain a section in parentheses,
* especially for development versions of KDE. * especially for development versions of KDE.
* If you use that macro directly for a file format (e.g. OASIS Open Docume nt) * If you use that macro directly for a file format (e.g. OASIS Open Docume nt)
* or for a protocol (e.g. http) be careful that it is appropriate. * or for a protocol (e.g. http) be careful that it is appropriate.
* (Fictional) example: "4.0.90 (>=20070101)" * (Fictional) example: "4.0.90 (>=20070101)"
*/ */
#define KDE_VERSION_STRING "4.8.3 (4.8.3)" #define KDE_VERSION_STRING "4.8.4 (4.8.4)"
/** /**
* @def KDE_VERSION_MAJOR * @def KDE_VERSION_MAJOR
* @ingroup KDEMacros * @ingroup KDEMacros
* @brief Major version of KDE, at compile time * @brief Major version of KDE, at compile time
*/ */
#define KDE_VERSION_MAJOR 4 #define KDE_VERSION_MAJOR 4
/** /**
* @def KDE_VERSION_MINOR * @def KDE_VERSION_MINOR
* @ingroup KDEMacros * @ingroup KDEMacros
* @brief Minor version of KDE, at compile time * @brief Minor version of KDE, at compile time
*/ */
#define KDE_VERSION_MINOR 8 #define KDE_VERSION_MINOR 8
/** /**
* @def KDE_VERSION_RELEASE * @def KDE_VERSION_RELEASE
* @ingroup KDEMacros * @ingroup KDEMacros
* @brief Release version of KDE, at compile time * @brief Release version of KDE, at compile time
*/ */
#define KDE_VERSION_RELEASE 3 #define KDE_VERSION_RELEASE 4
/** /**
* @ingroup KDEMacros * @ingroup KDEMacros
* @brief Make a number from the major, minor and release number of a KDE v ersion * @brief Make a number from the major, minor and release number of a KDE v ersion
* *
* This function can be used for preprocessing when KDE_IS_VERSION is not * This function can be used for preprocessing when KDE_IS_VERSION is not
* appropriate. * appropriate.
*/ */
#define KDE_MAKE_VERSION( a,b,c ) (((a) << 16) | ((b) << 8) | (c)) #define KDE_MAKE_VERSION( a,b,c ) (((a) << 16) | ((b) << 8) | (c))
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 khtml_settings.h   khtml_settings.h 
skipping to change at line 27 skipping to change at line 27
Boston, MA 02110-1301, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef KHTML_SETTINGS_H #ifndef KHTML_SETTINGS_H
#define KHTML_SETTINGS_H #define KHTML_SETTINGS_H
class KConfig; class KConfig;
class KConfigGroup; class KConfigGroup;
#include <khtml_export.h> #include <khtml_export.h>
#include <kparts/htmlextension.h>
#include <QtGui/QColor> #include <QtGui/QColor>
#include <QtGui/QFont> // ### KDE 5: remove #include <QtGui/QFont> // ### KDE 5: remove
#include <QtCore/QMap> // ### KDE 5: remove #include <QtCore/QMap> // ### KDE 5: remove
#include <QtCore/QStringList> #include <QtCore/QStringList>
#include <QtCore/QPair> #include <QtCore/QPair>
struct KPerDomainSettings; struct KPerDomainSettings;
class KHTMLSettingsPrivate; class KHTMLSettingsPrivate;
/** /**
* Settings for the HTML view. * Settings for the HTML view.
*/ */
class KHTML_EXPORT KHTMLSettings class KHTML_EXPORT KHTMLSettings
{ {
public: public:
/** /**
* This enum specifies whether Java/JavaScript execution is allowed. * This enum specifies whether Java/JavaScript execution is allowed.
*/ */
enum KJavaScriptAdvice { enum KJavaScriptAdvice { // ### KDE 5: Remove. Use KParts::HtmlSetting sInterface::JavaScriptAdvice instead
KJavaScriptDunno=0, KJavaScriptDunno=0,
KJavaScriptAccept, KJavaScriptAccept,
KJavaScriptReject KJavaScriptReject
}; };
enum KAnimationAdvice { enum KAnimationAdvice {
KAnimationDisabled=0, KAnimationDisabled=0,
KAnimationLoopOnce, KAnimationLoopOnce,
KAnimationEnabled KAnimationEnabled
}; };
skipping to change at line 74 skipping to change at line 75
enum KDNSPrefetch { enum KDNSPrefetch {
KDNSPrefetchDisabled=0, KDNSPrefetchDisabled=0,
KDNSPrefetchOnlyWWWAndSLD, KDNSPrefetchOnlyWWWAndSLD,
KDNSPrefetchEnabled KDNSPrefetchEnabled
}; };
/** /**
* This enum specifies the policy for window.open * This enum specifies the policy for window.open
*/ */
enum KJSWindowOpenPolicy { enum KJSWindowOpenPolicy { // ### KDE 5: Remove. Use KParts::HtmlSettin
KJSWindowOpenAllow=0, gsInterface::JSWindowOpenPolicy instead.
KJSWindowOpenAsk, KJSWindowOpenAllow=0,
KJSWindowOpenDeny, KJSWindowOpenAsk,
KJSWindowOpenSmart KJSWindowOpenDeny,
KJSWindowOpenSmart
}; };
/** /**
* This enum specifies the policy for window.status and .defaultStatus * This enum specifies the policy for window.status and .defaultStatus
*/ */
enum KJSWindowStatusPolicy { enum KJSWindowStatusPolicy { // ### KDE 5: Remove. Use KParts::HtmlSett
KJSWindowStatusAllow=0, ingsInterface::JSWindowStatusPolicy instead.
KJSWindowStatusIgnore KJSWindowStatusAllow=0,
KJSWindowStatusIgnore
}; };
/** /**
* This enum specifies the policy for window.moveBy and .moveTo * This enum specifies the policy for window.moveBy and .moveTo
*/ */
enum KJSWindowMovePolicy { enum KJSWindowMovePolicy { // ### KDE 5: Remove. Use KParts::HtmlSettin
KJSWindowMoveAllow=0, gsInterface::JSWindowMovePolicy instead.
KJSWindowMoveIgnore KJSWindowMoveAllow=0,
KJSWindowMoveIgnore
}; };
/** /**
* This enum specifies the policy for window.resizeBy and .resizeTo * This enum specifies the policy for window.resizeBy and .resizeTo
*/ */
enum KJSWindowResizePolicy { enum KJSWindowResizePolicy { // ### KDE 5: Remove. Use KParts::HtmlSett
KJSWindowResizeAllow=0, ingsInterface::JSWindowStatusPolicy insead.
KJSWindowResizeIgnore KJSWindowResizeAllow=0,
KJSWindowResizeIgnore
}; };
/** /**
* This enum specifies the policy for window.focus * This enum specifies the policy for window.focus
*/ */
enum KJSWindowFocusPolicy { enum KJSWindowFocusPolicy { // ### KDE 5: Remove. Use KParts::HtmlSetti
KJSWindowFocusAllow=0, ngsInterface::JSWindowStatusPolicy instead.
KJSWindowFocusIgnore KJSWindowFocusAllow=0,
KJSWindowFocusIgnore
}; };
/** /**
* @internal Constructor * @internal Constructor
*/ */
KHTMLSettings(); KHTMLSettings();
KHTMLSettings(const KHTMLSettings &other); KHTMLSettings(const KHTMLSettings &other);
/** /**
* Called by constructor and reparseConfiguration * Called by constructor and reparseConfiguration
skipping to change at line 214 skipping to change at line 215
*/ */
QString adFilteredBy( const QString &url, bool *isWhiteListed = 0 ) con st; QString adFilteredBy( const QString &url, bool *isWhiteListed = 0 ) con st;
bool isAdFilterEnabled() const; bool isAdFilterEnabled() const;
bool isHideAdsEnabled() const; bool isHideAdsEnabled() const;
void addAdFilter( const QString &url ); void addAdFilter( const QString &url );
// Access Keys // Access Keys
bool accessKeysEnabled() const; bool accessKeysEnabled() const;
// ### KDE 5: Replace KJSWindowOpenPolicy with KParts::HtmlSettingsInte rface::JSWindowOpenPolicy
KJSWindowOpenPolicy windowOpenPolicy( const QString& hostname = QString () ) const; KJSWindowOpenPolicy windowOpenPolicy( const QString& hostname = QString () ) const;
KJSWindowMovePolicy windowMovePolicy( const QString& hostname = QString () ) const; KJSWindowMovePolicy windowMovePolicy( const QString& hostname = QString () ) const;
KJSWindowResizePolicy windowResizePolicy( const QString& hostname = QSt ring() ) const; KJSWindowResizePolicy windowResizePolicy( const QString& hostname = QSt ring() ) const;
KJSWindowStatusPolicy windowStatusPolicy( const QString& hostname = QSt ring() ) const; KJSWindowStatusPolicy windowStatusPolicy( const QString& hostname = QSt ring() ) const;
KJSWindowFocusPolicy windowFocusPolicy( const QString& hostname = QStri ng() ) const; KJSWindowFocusPolicy windowFocusPolicy( const QString& hostname = QStri ng() ) const;
// helpers for parsing domain-specific configuration, used in KControl module as well // helpers for parsing domain-specific configuration, used in KControl module as well
// ### KDE 5: Replace KJavaScriptAdvice with KParts::HtmlSettingsInterf
ace::JavaScriptAdvice.
// ### KDE 5: Remove ? Equivalent functions now exist in KParts::HtmlSe
ttingsInterface.
static KJavaScriptAdvice strToAdvice(const QString& _str); static KJavaScriptAdvice strToAdvice(const QString& _str);
static void splitDomainAdvice(const QString& configStr, QString &domain , static void splitDomainAdvice(const QString& configStr, QString &domain ,
KJavaScriptAdvice &javaAdvice, KJavaScript KJavaScriptAdvice &javaAdvice,
Advice& javaScriptAdvice); KJavaScriptAdvice& javaScriptAdvice);
static const char* adviceToStr(KJavaScriptAdvice _advice); static const char* adviceToStr(KJavaScriptAdvice _advice);
/** reads from @p config's current group, forcing initialization /** reads from @p config's current group, forcing initialization
* if @p reset is true. * if @p reset is true.
* @param config is a pointer to KConfig object. * @param config is a pointer to KConfig object.
* @param reset true if initialization is to be forced. * @param reset true if initialization is to be forced.
* @param global true if the global domain is to be read. * @param global true if the global domain is to be read.
* @param pd_settings will be initialised with the computed (inherited ) * @param pd_settings will be initialised with the computed (inherited )
* settings. * settings.
*/ */
 End of changes. 10 change blocks. 
20 lines changed or deleted 31 lines changed or added


 kmessagewidget.h   kmessagewidget.h 
skipping to change at line 134 skipping to change at line 134
MessageType messageType() const; MessageType messageType() const;
void addAction(QAction *action); void addAction(QAction *action);
void removeAction(QAction *action); void removeAction(QAction *action);
QSize sizeHint() const; QSize sizeHint() const;
QSize minimumSizeHint() const; QSize minimumSizeHint() const;
int heightForWidth(int width) const;
public Q_SLOTS: public Q_SLOTS:
void setText(const QString &text); void setText(const QString &text);
void setWordWrap(bool wordWrap); void setWordWrap(bool wordWrap);
void setCloseButtonVisible(bool visible); void setCloseButtonVisible(bool visible);
void setMessageType(KMessageWidget::MessageType type); void setMessageType(KMessageWidget::MessageType type);
/** /**
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 knotification.h   knotification.h 
skipping to change at line 524 skipping to change at line 524
public: public:
/** /**
* @brief emit an event * @brief emit an event
* *
* This method creates the KNotification, setting every parameter, a nd fire the event. * This method creates the KNotification, setting every parameter, a nd fire the event.
* You don't need to call sendEvent * You don't need to call sendEvent
* *
* A popup may be displayed or a sound may be played, depending the config. * A popup may be displayed or a sound may be played, depending the config.
* *
* return a KNotification . You may use that pointer to connect som e signals or slot. * @return a KNotification . You may use that pointer to connect so me signals or slot.
* the pointer is automatically deleted when the event is closed. * the pointer is automatically deleted when the event is closed.
* *
* Make sure you use one of the CloseOnTimeOut or CloseWhenWidgetAct ivated, if not, * Make sure you use one of the CloseOnTimeOut or CloseWhenWidgetAct ivated, if not,
* you have to close yourself the notification. * you have to close yourself the notification.
* *
* @note the text is shown in a QLabel, you should escape HTML, if n eeded. * @note the text is shown in a QLabel, you should escape HTML, if n eeded.
* *
* @param eventId is the name of the event * @param eventId is the name of the event
* @param title is title of the notification to show in the popup. * @param title is title of the notification to show in the popup.
* @param text is the text of the notification to show in the popup. * @param text is the text of the notification to show in the popup.
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 ktcpsocket.h   ktcpsocket.h 
skipping to change at line 25 skipping to change at line 25
You should have received a copy of the GNU Library General Public Licen se You should have received a copy of the GNU Library General Public Licen se
along with this library; see the file COPYING.LIB. If not, write to along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. Boston, MA 02110-1301, USA.
*/ */
#ifndef KTCPSOCKET_H #ifndef KTCPSOCKET_H
#define KTCPSOCKET_H #define KTCPSOCKET_H
#include <QtNetwork/QSslSocket> #include <QtNetwork/QSslSocket>
//#include <QtCore/QRegExp> #include <QtNetwork/QSslConfiguration>
#include "kdecore_export.h" #include "kdecore_export.h"
/* /*
Notes on QCA::TLS compatibility Notes on QCA::TLS compatibility
In order to check for all validation problems as far as possible we need to use: In order to check for all validation problems as far as possible we need to use:
Validity QCA::TLS::peerCertificateValidity() Validity QCA::TLS::peerCertificateValidity()
TLS::IdentityResult QCA::TLS::peerIdentityResult() TLS::IdentityResult QCA::TLS::peerIdentityResult()
CertificateChain QCA::TLS::peerCertificateChain().validate() - to find th e failing cert! CertificateChain QCA::TLS::peerCertificateChain().validate() - to find th e failing cert!
TLS::Error QCA::TLS::errorCode() - for more generic (but stil SSL) errors TLS::Error QCA::TLS::errorCode() - for more generic (but stil SSL) errors
skipping to change at line 335 skipping to change at line 335
/** /**
* Sets the socket @p option to @p value. * Sets the socket @p option to @p value.
* *
* @see QAbstractSocket::setSocketOption * @see QAbstractSocket::setSocketOption
* *
* @since 4.5.0 * @since 4.5.0
*/ */
void setSocketOption(QAbstractSocket::SocketOption options, const QVari ant &value); void setSocketOption(QAbstractSocket::SocketOption options, const QVari ant &value);
/**
* Returns the socket's SSL configuration.
*
* @since 4.8.4
*/
QSslConfiguration sslConfiguration() const;
/**
* Sets the socket's SSL configuration.
*
* @since 4.8.4
*/
void setSslConfiguration(const QSslConfiguration& configuration);
Q_SIGNALS: Q_SIGNALS:
//from QAbstractSocket //from QAbstractSocket
void connected(); void connected();
void disconnected(); void disconnected();
void error(KTcpSocket::Error); void error(KTcpSocket::Error);
void hostFound(); void hostFound();
#ifndef QT_NO_NETWORKPROXY #ifndef QT_NO_NETWORKPROXY
void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthentic ator *authenticator); void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthentic ator *authenticator);
#endif #endif
// only for raw socket state, SSL is separate // only for raw socket state, SSL is separate
 End of changes. 2 change blocks. 
1 lines changed or deleted 15 lines changed or added


 querymatch.h   querymatch.h 
skipping to change at line 87 skipping to change at line 87
explicit QueryMatch(AbstractRunner *runner); explicit QueryMatch(AbstractRunner *runner);
/** /**
* Copy constructor * Copy constructor
*/ */
QueryMatch(const QueryMatch &other); QueryMatch(const QueryMatch &other);
~QueryMatch(); ~QueryMatch();
QueryMatch &operator=(const QueryMatch &other); QueryMatch &operator=(const QueryMatch &other);
bool operator==(const QueryMatch &other) const; bool operator==(const QueryMatch &other) const;
bool operator!=(const QueryMatch &other) const;
bool operator<(const QueryMatch &other) const; bool operator<(const QueryMatch &other) const;
/** /**
* @return the runner associated with this action * @return the runner associated with this action
*/ */
AbstractRunner *runner() const; AbstractRunner *runner() const;
/** /**
* @return true if the match is valid and can therefore be run, * @return true if the match is valid and can therefore be run,
* an invalid match does not have an associated AbstractRun ner * an invalid match does not have an associated AbstractRun ner
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 service.h   service.h 
skipping to change at line 33 skipping to change at line 33
#include <QtCore/QMap> #include <QtCore/QMap>
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/QVariant> #include <QtCore/QVariant>
#include <kconfiggroup.h> #include <kconfiggroup.h>
#include <plasma/plasma_export.h> #include <plasma/plasma_export.h>
#include <plasma/plasma.h> #include <plasma/plasma.h>
#include "packagemetadata.h" #include "packagemetadata.h"
class QGraphicsWidget; class QGraphicsObject;
class QIODevice; class QIODevice;
class QWidget; class QWidget;
namespace Plasma namespace Plasma
{ {
class ServiceJob; class ServiceJob;
class ServicePrivate; class ServicePrivate;
/** /**
skipping to change at line 204 skipping to change at line 204
* Disassociates a widget if it has been associated with an operation * Disassociates a widget if it has been associated with an operation
* on this service. * on this service.
* *
* This will not change the enabled state of the widget. * This will not change the enabled state of the widget.
* *
* @param widget the QWidget to disassociate. * @param widget the QWidget to disassociate.
*/ */
Q_INVOKABLE void disassociateWidget(QWidget *widget); Q_INVOKABLE void disassociateWidget(QWidget *widget);
/** /**
* Assoicates a widget with an operation, which allows the service to * This method only exists to maintain binary compatibility.
* automatically manage, for example, the enabled state of a widget.
* *
* This will remove any previous associations the widget had with * @see associateItem
*/
Q_INVOKABLE void associateWidget(QGraphicsWidget *widget, const QString
&operation);
/**
* This method only exists to maintain binary compatibility.
*
* @see disassociateItem
*/
Q_INVOKABLE void disassociateWidget(QGraphicsWidget *widget);
/**
* Associates a graphics item with an operation, which allows the servi
ce to
* automatically manage, for example, the enabled state of the item.
*
* This will remove any previous associations the item had with
* operations on this engine. * operations on this engine.
* *
* @param widget the QGraphicsItem to associate with the service * @param item the QGraphicsObject to associate with the service
* @param operation the operation to associate the widget with * @param operation the operation to associate the item with
*/ */
Q_INVOKABLE void associateWidget(QGraphicsWidget *widget, const QString &operation); Q_INVOKABLE void associateItem(QGraphicsObject *item, const QString &op eration);
/** /**
* Disassociates a widget if it has been associated with an operation * Disassociates a graphics item if it has been associated with an oper ation
* on this service. * on this service.
* *
* This will not change the enabled state of the widget. * This will not change the enabled state of the item.
* *
* @param widget the QGraphicsWidget to disassociate. * @param widget the QGraphicsItem to disassociate.
*/ */
Q_INVOKABLE void disassociateWidget(QGraphicsWidget *widget); Q_INVOKABLE void disassociateItem(QGraphicsObject *widget);
/** /**
* @return a parameter map for the given description * @return a parameter map for the given description
* @param description the configuration values to turn into the paramet er map * @param description the configuration values to turn into the paramet er map
* @since 4.4 * @since 4.4
*/ */
Q_INVOKABLE QMap<QString, QVariant> parametersFromDescription(const KCo nfigGroup &description); Q_INVOKABLE QMap<QString, QVariant> parametersFromDescription(const KCo nfigGroup &description);
Q_SIGNALS: Q_SIGNALS:
/** /**
 End of changes. 9 change blocks. 
11 lines changed or deleted 27 lines changed or added


 slaveinterface.h   slaveinterface.h 
skipping to change at line 117 skipping to change at line 117
void setConnection( Connection* connection ); void setConnection( Connection* connection );
Connection *connection() const; Connection *connection() const;
// Send our answer to the MSG_RESUME (canResume) request // Send our answer to the MSG_RESUME (canResume) request
// (to tell the "put" job whether to resume or not) // (to tell the "put" job whether to resume or not)
void sendResumeAnswer( bool resume ); void sendResumeAnswer( bool resume );
void setOffset( KIO::filesize_t offset ); void setOffset( KIO::filesize_t offset );
KIO::filesize_t offset() const; KIO::filesize_t offset() const;
/**
* Returns the top level window used as parent when displaying
* dialogs.
*
* @see setWindow
* @since 4.8.2
*/
QWidget* window() const;
/**
* Sets the top level window used as a parent when displaying
* dialogs.
* @see window
* @since 4.8.2
*/
void setWindow(QWidget* window);
Q_SIGNALS: Q_SIGNALS:
/////////// ///////////
// Messages sent by the slave // Messages sent by the slave
/////////// ///////////
void data( const QByteArray & ); void data( const QByteArray & );
void dataReq( ); void dataReq( );
void error( int , const QString & ); void error( int , const QString & );
void connected(); void connected();
void finished(); void finished();
 End of changes. 1 change blocks. 
0 lines changed or deleted 17 lines changed or added


 tcpslavebase.h   tcpslavebase.h 
skipping to change at line 220 skipping to change at line 220
protected: protected:
virtual void virtual_hook( int id, void* data ); virtual void virtual_hook( int id, void* data );
private: private:
// For the certificate verification code // For the certificate verification code
SslResult verifyServerCertificate(); SslResult verifyServerCertificate();
// For prompting for the client certificate to use // For prompting for the client certificate to use
void selectClientCertificate(); void selectClientCertificate();
//we can't include ktcpsocket.h here as it is not exported
SslResult startTLSInternal(uint KTcpSocket_SslVersion);
class TcpSlaveBasePrivate; class TcpSlaveBasePrivate;
TcpSlaveBasePrivate* const d; TcpSlaveBasePrivate* const d;
}; };
} }
#endif #endif
 End of changes. 1 change blocks. 
3 lines changed or deleted 0 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/