Index: plugin.php
===================================================================
--- plugin.php	(revision 9125)
+++ plugin.php	(working copy)
@@ -16,7 +16,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.5
+ * @since 1.5.0
  */
 
 /**
@@ -76,7 +76,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.5
+ * @since 2.5.0
  * @global array $wp_filter Stores all of the filters
  *
  * @param string $tag The name of the filter hook.
@@ -186,7 +186,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.2
+ * @since 1.2.0
  *
  * @param string $tag The filter hook to which the function to be removed is hooked.
  * @param callback $function_to_remove The name of the function which should be removed.
@@ -212,7 +212,7 @@
 /**
  * Remove all of the hooks from a filter.
  *
- * @since 2.7
+ * @since 2.7.0
  *
  * @param string $tag The filter to remove hooks from.
  * @param int $priority The priority number to remove.
@@ -239,7 +239,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.5
+ * @since 2.5.0
  *
  * @return string Hook name of the current filter or action.
  */
@@ -261,7 +261,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.2
+ * @since 1.2.0
  *
  * @param string $tag The name of the action to which the $function_to_add is hooked.
  * @param callback $function_to_add The name of the function you wish to be called.
@@ -288,7 +288,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.2
+ * @since 1.2.0
  * @global array $wp_filter Stores all of the filters
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
@@ -348,7 +348,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.1
+ * @since 2.1.0
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @param string $tag The name of the action hook.
@@ -371,7 +371,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.1
+ * @since 2.1.0
  * @global array $wp_filter Stores all of the filters
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
@@ -423,7 +423,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.5
+ * @since 2.5.0
  * @see has_filter() has_action() is an alias of has_filter().
  *
  * @param string $tag The name of the action hook.
@@ -443,7 +443,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.2
+ * @since 1.2.0
  *
  * @param string $tag The action hook to which the function to be removed is hooked.
  * @param callback $function_to_remove The name of the function which should be removed.
@@ -458,7 +458,7 @@
 /**
  * Remove all of the hooks from an action.
  *
- * @since 2.7
+ * @since 2.7.0
  *
  * @param string $tag The action to remove hooks from.
  * @param int $priority The priority number to remove them from.
@@ -479,13 +479,12 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 1.5
- *
+ * @since 1.5.0
+ * @uses WP_PLUGIN_DIR
  * @access private
  *
- * @param string $file The filename of plugin.
+ * @param string $file The path to plugin.
  * @return string The name of a plugin.
- * @uses WP_PLUGIN_DIR
  */
 function plugin_basename($file) {
 	$file = str_replace('\\','/',$file); // sanitize for Win32 installs
@@ -497,6 +496,28 @@
 }
 
 /**
+ * Retrieve the plugin base URL directory.
+ *
+ * The path has the trailing slash, so it doesn't need to be added.
+ *
+ * @link http://trac.wordpress.org/ticket/6341 Reason for function.
+ * @since 2.7.0
+ * @uses plugin_basename()
+ *
+ * @param string $file The path to plugin.
+ * @return string Full URL path, including domain, to plugin base directory.
+ */
+function plugin_baseurl($file) {
+	$file = dirname($file);
+	$file = plugin_basename($file);
+
+	if ( empty( $file ) )
+		return trailingslashit(WP_PLUGIN_URL);
+
+	return WP_PLUGIN_URL . '/'. trailingslashit($file);
+}
+
+/**
  * Set the activation hook for a plugin.
  *
  * When a plugin is activated, the action 'activate_PLUGINNAME' hook is
@@ -510,7 +531,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.0
+ * @since 2.0.0
  *
  * @access private
  *
@@ -537,7 +558,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.0
+ * @since 2.0.0
  *
  * @access private
  *
@@ -569,7 +590,7 @@
  * should always check for the 'WP_UNINSTALLING_PLUGIN' constant, before
  * executing.
  *
- * @since 2.7
+ * @since 2.7.0
  *
  * @param string $file
  * @param callback $callback The callback to run when the hook is called.
@@ -596,7 +617,7 @@
  *
  * @package WordPress
  * @subpackage Plugin
- * @since 2.5
+ * @since 2.5.0
  * @access private
  *
  * @uses $wp_filter Used to process all of the functions in the 'all' hook
