code: function(pixel) {
          if(!this.drawingHole && this.holeModifier &&
             this.evt && this.evt[this.holeModifier]) {
              var geometry = this.point.geometry;
              var features = this.control.layer.features;
              var candidate, polygon;
              // look for intersections, last drawn gets priority
              for (var i=features.length-1; i>=0; --i) {
                  candidate = features[i].geometry;
                  if ((candidate instanceof OpenLayers.Geometry.Polygon || 
                      candidate instanceof OpenLayers.Geometry.MultiPolygon) && 
                      candidate.intersects(geometry)) {
                      polygon = features[i];
                      this.control.layer.removeFeatures([polygon], {silent: true});
                      this.control.layer.events.registerPriority(
                          "sketchcomplete", this, this.finalizeInteriorRing
                      );
                      this.control.layer.events.registerPriority(
                          "sketchmodified", this, this.enforceTopology
                      );
                      polygon.geometry.addComponent(this.line.geometry);
                      this.polygon = polygon;
                      this.drawingHole = true;
                      break;
                  }
              }
          }
          OpenLayers.Handler.Path.prototype.addPoint.apply(this, arguments);
      }
docs: Method: addPoint
  Add point to geometry.
  
  Parameters:
  pixel - {<OpenLayers.Pixel>} The pixel location for the new point.