public/ckeditor/_source/plugins/undo/plugin.js
function( onContentOnly, image, autoFireChange )
		{
			var snapshots = this.snapshots;

			// Get a content image.
			if ( !image )
				image = new Image( this.editor );

			// Do nothing if it was not possible to retrieve an image.
			if ( image.contents === false )
				return false;

			// Check if this is a duplicate. In such case, do nothing.
			if ( this.currentImage && image.equals( this.currentImage, onContentOnly ) )
				return false;

			// Drop future snapshots.
			snapshots.splice( this.index + 1, snapshots.length - this.index - 1 );

			// If we have reached the limit, remove the oldest one.
			if ( snapshots.length == this.limit )
				snapshots.shift();

			// Add the new image, updating the current index.
			this.index = snapshots.push( image ) - 1;

			this.currentImage = image;

			if ( autoFireChange !== false )
				this.fireChange();
			return true;
		}
function( onContentOnly, image, autoFireChange )
		{
			var snapshots = this.snapshots;

			// Get a content image.
			if ( !image )
				image = new Image( this.editor );

			// Do nothing if it was not possible to retrieve an image.
			if ( image.contents === false )
				return false;

			// Check if this is a duplicate. In such case, do nothing.
			if ( this.currentImage && image.equals( this.currentImage, onContentOnly ) )
				return false;

			// Drop future snapshots.
			snapshots.splice( this.index + 1, snapshots.length - this.index - 1 );

			// If we have reached the limit, remove the oldest one.
			if ( snapshots.length == this.limit )
				snapshots.shift();

			// Add the new image, updating the current index.
			this.index = snapshots.push( image ) - 1;

			this.currentImage = image;

			if ( autoFireChange !== false )
				this.fireChange();
			return true;
		}
function ( onContentOnly , image , autoFireChange ) { var snapshots = this . snapshots ; // Get a content image.
 if ( ! image ) image = new Image ( this . editor ) ; // Do nothing if it was not possible to retrieve an image.
 if ( image . contents === false ) return false ; // Check if this is a duplicate. In such case, do nothing.
 if ( this . currentImage && image . equals ( this . currentImage , onContentOnly ) ) return false ; // Drop future snapshots.
 snapshots . splice ( this . index + 1 , snapshots . length - this . index - 1 ) ; // If we have reached the limit, remove the oldest one.
 if ( snapshots . length == this . limit ) snapshots . shift ( ) ; // Add the new image, updating the current index.
 this . index = snapshots . push ( image ) - 1 ; this . currentImage = image ; if ( autoFireChange !== false ) this . fireChange ( ) ; return true ; }
Save a snapshot of document image for later retrieve.
Save a snapshot of document image for later retrieve .