2004-06-11 Rajesh Vaidheeswarran * (p4-version): Bump to 10.6 * (p4-follow-link-name): Add check for cygwin * (p4-cygpath): New function to do cygwin path mangling 2004-06-11 Rajesh Vaidheeswarran * (p4-version): Bump to 10.5 * (p4-group, p4-groups): New defuns. Appropriate adds to existing defuns to incorporate the new features * (p4-make-face): Use the simpler facep and lose distro-specific issues * miscellaneous doc fixes 2004-05-18 Rajesh Vaidheeswarran * (p4-version): Bump to 10.4 * Update all email addresses in this list with some bogus string to prevent auto-reaping of email addresses from this file 2004-05-18 David Lum * (p4-make-face): Add new defun to make a face only if it doesn't already exist. 2003-09-12 Rajesh Vaidheeswarran * (p4-version): Bump version to 10.3 * p4.el.html: Document `p4-ediff2', `p4-depot-find-file' and `p4-bug-report' * thanks.html: Add P T Withington for p4-ediff2 related changes * TODO: Remove note about documenting `p4-depot-find-file' 2003-09-12 P T Withington * (p4-ediff2): New. Two ediff any two versions a file. Add to menu map * (p4-ediff): Use `p4-ediff2' if called with prefix-arg 2003-07-06 Daniel Brotsky Work around a problem in some emacsen wherein the PWD environment variable is not updated on a per-buffer basis, thus confusing p4 which prefers the PWD value to the actual directory of invocation. The result would be that p4 config files (P4CONFIG) would be found by emacs but not respected by p4. The workaround is always to use the -d argument when invoking p4, passing the current directory explicitly. This involved adding a new wrapper for simple in-place p4 invocations and making several functions call it instead of calling p4 directly. * (p4-exec-p4): changed to use the -d argument when invoking p4 * (p4-call-p4-here): added as a new invocation bottleneck that uses the -d argument; several fns changed to call it. * (p4-async-process-command): save the directory of the calling buffer and transfer it to the async-edit buffer, so that it can be used both in the buffer setup command and in the final p4 command invoked. * (p4-get-p4-port): add local as well as global port reporting, so that this function correctly respects P4CONFIG. * (p4-do-notify): changed to use the -d argument 2003-05-02 Peter Osterlund * (p4-activate-diff-buffer): Create links for client and user names in p4-describe buffers. 2002-10-24 Rajesh Vaidheeswarran * (p4-version): Update to 10.2 for release 2002-10-03 Peter Osterlund * (p4-blame-int): Also include file revisions before a deleted revision in the blame computation. 2002-10-02 Peter Osterlund * (p4-blame-int): Bail out early instead of generating garbage if invoked with a non-existing file revision. * (p4-blame-int): Set the 'link-depot-name character property instead of 'file. This makes all places that use p4-buffer-file-name-2 do the right thing automatically. * (p4-blame-int): Use change numbers instead of revision numbers as keys when looking up data in ch-alist. Revision numbers are not unique when more than one file is involved. 2002-10-01 Peter Osterlund * (p4-blame-int): Use correct filename when initializing the "p4-ch-buf" buffer. * (p4-font-lock-buffer): Made fontification more robust. Some versions of emacs failed if you tricked them to fontify a binary file. 2002-09-29 Peter Osterlund * (p4-find-change-numbers): Handle the case "submit @1234" when searching for change numbers in change descriptions. 2002-09-24 Peter Osterlund * p4.el.html: Added documentation for the different key maps used by p4.el. * (p4-font-lock-buffer): Fixed problem with delays when pressing C-l caused by hilit19 unnecessarily trying to rehighlight the buffer. 2002-09-23 Peter Osterlund * (p4-font-lock-buffer): New function. Colorize a buffer using font-lock mode. * (p4-activate-print-buffer): Use p4-font-lock-buffer. * (p4-print-with-rev-history-int): Use p4-font-lock-buffer. 2002-09-22 Peter Osterlund * (p4-print-with-rev-history-int): Fixed misaligned header text. * (p4-print-rev-map): Add 'l' key to toggle line wrap mode. * (p4-print-with-rev-history-int): Default to line wrap mode off. * (p4-toggle-line-wrap): New function to toggle line wrap mode. * (p4-print-with-rev-history-int): Colorize the buffer contents using font-lock mode. * (p4-insert-no-properties): New function. * (p4-resolve): If you switched directory to a different depot, p4-resolve didn't work until you manually killed the *p4 resolve* buffer. * (p4-print-with-rev-history-int): Tiny optimization. Only compute variable values if they are going to be used. 2002-09-07 Peter Osterlund * (p4-print-with-rev-history-int): Truncate long user names. 2002-08-29 Peter Osterlund * (p4-toggle-read-only): Updated docstring to match new "C-xC-q" handling from 2002-08-25. * (p4-print-with-rev-history-int): Fixed regexp to work with long user names. * (p4-next-change-rev-line, p4-prev-change-rev-line): Fix to work with new format of print-with-rev-history buffers. * (p4-moveto-print-rev-column): New function. * (p4-print-with-rev-history-int): Removed debug message. Made the number of added characters a multiple of 8 to avoid messing up indentation for lines containing tabs. 2002-08-28 Peter Osterlund * (p4-print-with-rev-history-int): Declare local variable cur-list. * (p4-blame): Fixed typo. 2002-08-25 Peter Osterlund Handle "C-xC-q" using a minor mode keymap instead of modifying the global map. This lets p4.el coexist happily with "vc" without special hacks. * (p4-minor-map): New keymap. * (p4-async-minor-mode): Renamed from p4-minor-mode. * (p4-require-vc-p, p4-prev-toggle-fkn, substitute-key-definition): Removed. 2002-08-24 Peter Osterlund * (p4-prev-toggle-fkn, p4-exec-p4, substitute-key-definition): Do not autoload. Autoloading causes unnecessary overhead for those not using p4.el without really helping those who do use it. 2002-08-05 Rajesh Vaidheeswarran * (p4-print-with-rev-history-int): Add Date and Author * (p4-blame): Add Date and Author (but it doesn't seem to work!) 2002-08-02 Peter Osterlund * (p4-diff2): When invoking p4-diff2 interactively, default to showing the differences between the current rev and rev# minus one. * (p4-prev-toggle-fkn): Mark for autoload, to make byte compilation from the xemacs source code possible. 2002-08-01 Peter Osterlund * Fixed some warnings during xemacs byte compilation. 2002-07-31 Peter Osterlund * (p4-activate-print-buffer), (p4-make-depot-list-buffer): Allow all characters in depot names, not just a-z and A-Z. Take special care not to confuse depot path specifications with C++ comments. * (defp4cmd): Renamed def-p4-cmd to defp4cmd to make the find-function function recognize it as a function definition. * (p4-is-vc): Removed unused variable 'max'. 2002-07-27 Peter Osterlund * (p4-empty-diff-p): Made non-interactive. * (p4-toggle-read-only): Added support for off-line mode, useful when you lose connection to the p4 server or if you want to change a file without letting p4 know. * Made loading of vc package optional. 2002-07-26 Rajesh Vaidheeswarran * (p4-diff-head): New command to diff an (un)opened file against the head revision in the depot. 2002-07-26 Rajesh Vaidheeswarran * (p4-emacs-version): Minor Release - 10.1 * (p4-maintainer): Fix email address * Patch from "Paul Krause" Update all buffers after a check-in without prompting the user yes-or-no for each buffer (a very nice thing when you're checking in 50 files at once). 2002-07-26 Peter Osterlund * (p4-check-mode): Made it possible to disable the periodic file modification check by setting p4-file-refresh-timer-time to 0. Suggestion from Guenter Radestock. * (p4-refresh-files-in-buffers): Made interactive, so that it can be bound to a key sequence, which can be handy if you have disabled the periodic file modification check. 2002-07-26 Rajesh Vaidheeswarran * (p4-emacs-version): First Sourceforge release - 10.0 * (p4-maintainer): Change to New sourceforge mailing address 2002-07-26 Peter Osterlund * (p4-current-client): If the p4-current-client function can't get the current client name from the environment or the $P4CONFIG file, use "p4 info" to retrieve the information. This is slower but more robust, because p4 makes up a default client name from the host name if not defined in the environment. Previously, p4.el couldn't figure out what the default client name was, which made it fail in subtle ways. * (p4-client): When opening a client buffer, if there is no description field, go to the view field instead. From Andre Srinivasan. * (p4-empty-diff-p): Optimized so that it doesn't produce so much p4 server load. * (p4-is-vc): Speeded up significantly when there are many (>3000) opened files. * (p4-empty-diff-p): Optimized for speed. The p4-read-depot-output function is much slower than a more direct "(while (re-search-forward " approach. * (p4-save-opened-files): Optimized by not using the p4-read-depot-output function. * (p4-get-add-branch-files): Optimized by not using the p4-read-depot-output function. 2002-07-25 Peter Osterlund * (p4-menu-def): Reordered code blocks to make xemacs work correctly. * (p4-activate-diff-buffer): Simplified regexp to avoid regexp stack overflow when there are a lot of changes in the same file. * Fixed problem when switching between different clients using the $P4CONFIG facility. When executing some p4.el commands, an old p4-output-buffer was not deleted, which had the effect that some p4 commands were executed with the wrong current directory. * Smarter searching for the p4 executable. Searches all directories in the standard search path. Searches for p4.exe if running in windows. * (p4-print-with-rev-history-int): Fixed type conversion bug exposed by emacs 21.2.1. * (p4-get-add-branch-files), (p4-get-have-files), (p4-is-vc): Correctly handle filenames containing spaces. * (p4-submit), (p4-save-opened-files): When preparing for the p4-submit command, only offer to save buffers that are relevant to the current submit, ie disregard unsaved files from other clients and buffers not under revision control. * (p4-noinput-buffer-action): Fixed problem with xemacs losing buffer position when opening a file for edit or reverting the file. From Andre Srinivasan. * (p4-cmd-line-flags): New helper function. * (p4-activate-file-change-log-buffer): Parsing of p4 changelog buffers failed if case-fold-search was set to nil. * (p4-map-depot-files-int): Quote client related strings when using them in regexps. * (p4-async-process-command): Set the buffer-offer-save variable to minimize the risk of losing data by accidentally hitting "C-x C-c". * (p4-detect-p4): Simplified and removed obsolete docstring. * (p4-submit): "p4 submit -c changeNo" now gives the user an opportunity to preview and edit the change description before committing. * (p4-exec-p4): Set correct current directory when executing p4 commands from a dired buffer. Previously it didn't work if you had inserted subdirectories in the dired buffer with the 'i' command. * (p4-activate-file-change-log-buffer): Fixed problem with isearch in "p4 changes" buffers in XEmacs 21.4. From Andre Srinivasan: "When displaying a list of changes, incremental search wouldn't match on text in the description unless the isearch-open-invisible property is set (in xemacs, anyway)." 2002-07-23 Rajesh Vaidheeswarran * (p4-version): v9.1 * Lose the null device. New emacs requires nil to be passed into call-process. * Set the default port to perforce:1666 per Perforce's docs. 2000-08-02 Rajesh Vaidheeswarran * (p4-version): v8.5 2000-08-02 Axel Wienberg * (p4-detect-p4): Fix the regexp for matching Windows drive letters. 2000-06-09 Rajesh Vaidheeswarran * (p4-version): v8.4 2000-06-09 Peter Österlund * (p4-activate-diff-buffer): Optimized to generate fewer extents. This can improve performance a lot for large diffs, at least for gnu emacs. * (p4-prefix-map): Defined in the same way as the other keymaps are defined. * (p4-depot-completion): Automatically generated by p4-completion-builder. * (p4-completion-builder): When generating a list of depot completions, return just the filename part of each completion instead of the entire depot pathname. * (p4-get-server-version): Cache p4 server version information, so that unnecessary server queries are avoided. * (p4-empty-diff-p): Fixed bug causing wrong return value when no file was opened for edit. 2000-06-07 Rajesh Vaidheeswarran * Change maintainer email address 2000-06-07 Bryan O'Sullivan * (p4-submit): Added new defcustom `p4-check-empty-diffs' to make the checks for empty diff user driven. 2000-06-07 Mike Moretti" * (p4-is-vc): Added check to ensure P4:Add shows up on files that were added, and then visited later from emacs. 2000-04-07 Rajesh Vaidheeswarran * (p4-version): v8.3 2000-04-02 Peter Österlund * General cleanup and typo fix. * (p4-async-process-command): Fix for bug introduced in 8.2 2000-02-24 Mark D. Anderson * (p4-detect-p4): Fix for infinite loop on windows 2000-03-31 Rajesh Vaidheeswarran * (p4-version): v8.2 * (p4-check-p4-executable): New function. Always use this instead of `p4-executable' variable since this would test and set `p4-executable' if nil. * Modify all functions that use p4-executable directly to use `p4-check-p4-executable' instead. 1999-10-29 Rajesh Vaidheeswarran * (p4-version): v8.1 * Take a tip from Noah Friedman and test for existence of `defcustom' and `defgroup' using fboundp instead of assuming that these are not present in particular flavors of emacs. 1999-10-27 Rajesh Vaidheeswarran * (p4-version): v8.0 * (p4-release-notes): Removed. 1999/10/07 Rajesh Vaidheeswarran * Code Re-organization. 1999/07/03 Peter Österlund * Branched files are colored blue, like added files. * Improved heuristic to recognize references to other changes in a change description text. * (p4-make-depot-list-buffer): Fix. If a file didn't end with a newline character, the depot<->client mapping could be computed incorrectly. * Made "N" an alias key for "p" in the keymaps. This simplifies for people accustomed to "less", where "N" is used so search backwards. * Fixed tab completion to work for label names after a ',' character. (file@label1,label2). * Explicitly call `p4-refresh-files-in-buffers' when needed, ie from `p4-submit', `p4-get' and `p4-refresh'. Also called from p4-edit/restore if a custom argument was specified. (A custom argument means that buffers other than the current buffer can be affected by the command.) * (p4-is-vc): Use the "have" command instead of the "files" command. It is more logical to return the revision had by the client, because that is the revision you see in the emacs buffer. * (p4-refresh-files-in-buffers): Fixed, so that deleted files and files with new permissions but unchanged modified time are handled correctly. * (p4-submit): If invoked when another submit buffer is already active, switch to the old submit buffer instead of overwriting it without a warning. * Automatically flush a specific completion cache when a command that can possibly make the cache stale has been executed. * (p4-async-command-hook): New hook, is run when an async buffer has been set up by the `p4-async-process-command' function. * (p4-push-window-config-stack), (p4-pop-window-config-stack) Added. The window configuration is automatically pushed before it is changed by p4.el, and can be manually popped with "C-x p q". * Refresh files in all buffers under p4 control immediately after a submit. * Changed the edit, reopen, revert, diff, remove and where commands so that if the command output only contains one line, the line will be displayed in the echo area instead of in its own window. * Display a warning if the p4-submit command is invoked when there exists a file opened for edit but with an empty diff. 1999/05/19 Rajesh Vaidheeswarran * (p4-version): v7.8 * (p4-verbose): Now customizable (and set by default). Setting this to nil allows the p4 output buffer to be hidden for users who don't want the output to show up during edits and reverts. 1999/05/10 Rajesh Vaidheeswarran * (p4-version): v7.7 * (p4-mode-hook): New hook, thanks to Christian Callsen. 1999/05/06 Rajesh Vaidheeswarran * (p4-version): v7.6 * (p4-find-file-hook): Faster, thanks to Christian Callsen for his optimization for finding the P4CONFIG file. Set the customizable variable `p4-use-p4config-exclusively', if you use P4CONFIG exclusively to get this optimization. * Thanks to Peter Österlund for his fixes: * Made byte compilation work with emacs 19.x. * The depot file listings now mark added files with blue color. * Removed use of `with-current-buffer' macro to stay compatible with emacs 19.x. * (p4-help): Now accepts more than one argument. * (p4-labelsync): Implemented. The smart completion function also understands that the word after -l in an argument string is a label name. * (p4-submit): command now accepts arguments. This makes "p4 submit -c changeno" work. 1999/05/04 Rajesh Vaidheeswarran * (p4-version): v7.5 * (p4-auto-refresh): Always check if the modified time reported by the buffer is the same as the file on disk before attempting to refresh. 1999/05/01 Rajesh Vaidheeswarran * (p4-version): v7.4 * (p4-auto-refresh): Implemented. Users can now suppress the yes-or-no question for refreshing submitted files by setting this. All p4 buffers that have no modifications in them after last save will automatically be refreshed. 1999/04/13 Rajesh Vaidheeswarran * (p4-version): v7.3 * (p4-edit): Indentation fix by Peter Österlund. * (p4-diff2): Fix by Peter Österlund made it possible to complete on branch name when using the -b switch. * (p4-users): Peter Österlund added command completion. 1999/04/05 Rajesh Vaidheeswarran * (p4-version): v7.2 * Peter Österlund fix - Make it work with 19.x again. 1999/04/04 Rajesh Vaidheeswarran * (p4-version): v7.1 * Quash compilers warnings. * Add web page redirector to menu bar. 1999/04/04 Rajesh Vaidheeswarran * (p4-version): v7.0 * New custom group, and export user settable variables under the customize menu. * Indentation cleanup. 1999/03/28 Rajesh Vaidheeswarran * (p4-version): v6.6 * (p4-get-client-root): Fix. 1999/03/28 Rajesh Vaidheeswarran * (p4-version): v6.5 * (p4-get-info): Returns reversed list. * (p4-assign-value-macro): and new function `p4-assign-values' to simplify assignment of list of values to list of variables. * Check `call-process' return value before using the results. * Peter Österlund Fixes follow: * (p4-make-derived-map): Cleaned up the handling of different keymaps by creating a new function, which simplifies keymap derivation. Also, the `p4-basic-map' keymap is used in the release notes and the help buffers. * (p4-print-with-revision-history): Removed an invalid int-to-string conversion. * The "n" and "p" keys now work in the "print with revision history" buffers. They move the cursor to the next/previous line containing change+revision numbers. * (p4-read-arg-string): Created, used to do intelligent tab completion when reading arguments for p4 commands. * (p4-release-notes): Fixed, so that the old release notes buffer is not killed until the version number has been typed in by the user. * (p4-depot-completion-search): Fixed. When an exact cache match was found, the filespec was not added to the beginning of the returned list. The effect was that one completion alternative disappeared. * Fixed a typo in a character range specification. * (p4-diff2): (p4-integ): Use `p4-read-arg-string'. * (p4-is-vc). Fixed. It didn't work if the `buffer-file-name' variable was nil. * (p4-read-arg-string): now also completes file names with help from the new function `p4-file-name-completion'. 1999/03/28 Rajesh Vaidheeswarran * (p4-version): v6.4 * Indentantion cleanup. * Don't assume all depots start with //depot * (p4-get-info): Can now be passed a list of keys, and will return a list of values. * Server:Port names are buffer-local. P4PORT is not set when under P4CONFIG. * Fix Bug reported by Gleb Arshinov. The filelog buffer should contain the local value of client (and server?) of the file that it belongs to, in order to not make assumptions about these properties. * Fix Bug reported by Gleb Arshinov. As of XEmacs 21.0, concat does not accept individual integers as arguments. * (p4-refresh-refresh-list): Created to fix bug reported by Amaury FORGEOT-d'ARC. `find-alternate-file' (C-x C-v) command to change files in the buffer previously occupied by a P4 controlled file doesn't remove the old file name from the p4-all-buffer-file list. So the timer auto-refreshes opening the file again. * Remove extraneous unused variables. 1999/03/25 Rajesh Vaidheeswarran * (p4-version): v6.3 * (p4-print-with-revision-history): Fix Info string. * (p4-get-client-name): now returns the local value of client and the global value of client (if any). * Whitespace cleanup. 1999/03/19 Rajesh Vaidheeswarran * (p4-version): v6.2 * (p4-make-depot-list-buffer), (p4-get-client-root): and (p4-map-depot-file) should proceed only if a valid client name exists. * (p4-set-client-config): Made more intelligent to check for null value. * (p4-get-client-config): Added to get the current value of P4CONFIG. * (p4-next-depot-diff), (p4-prev-depot-diff): Added to move to next diff in same file, in diff and opened buffers using shortcut keys `d' and `u' (for `down' and `up'). * (p4-set-client-config), (p4-get-client-config): Added to the menus. No shortcut key has been added since this is not a very frequent operation. 1999/03/19 Peter Österlund * (p4-create-active-link): Added. This makes it easier to create clickable links and also removes a lot of duplicated code. * Use the `1-' and `1+' functions where appropriate. * (p4-print-with-rev-history): Implemented. Functionality similar to the p4pr.perl program. * (p4-help): command now creates its own buffer for the output. * (p4-activate-diff-buffer): bug fix. * Changed all `kill-region' to `delete-region' to avoid trashing the kill ring. 1999/03/19 Rajesh Vaidheeswarran * (p4-version): v6.1 * P4 clients now discovered automatically if P4CONFIG variable is set. To set the P4CONFIG variable interactively, or from .emacs, use `p4-set-client-config' * P4 client variables are now buffer local. If a global config is present, and a global client is present, the global config takes precedence for buffers where a p4 client exists. For all other buffers, the global client will take precedence. In light of this, care must be taken to use commands like that set the buffer like (set-buffer p4-output-buffer-name) more carefully in macros, since setting a buffer will change your client. The preferred method is to get the current client using the new macro `p4-current-client' into a local variable and then using it in forms. * (p4-depot-find-file): now gets any depot file, even ones unmapped by any clients. Mapped files will be opened, unmapped files will show up in a buffer by getting them using p4 print. * (p4-get-info): Added to get any info that can be retrieved from p4 info. Accepts strings on the left hand side of the `:' and returns the string on the right hand side. 1999/03/18 Rajesh Vaidheeswarran * (p4-version): v6.0 * Spelling cleanup in Release Notes. * Emacs can now cleanup its caches automatically. `p4-cache-cleanup' will be called whenever a cache update is done. Cache cleanup is good since the values, once populated, are not re-acquired from the server. This would mean that sometimes, the completions will not complete on everything in the server that matches a given pattern, but only things in the cache that match that pattern. However, when not on a high speed connection, this might prove to be a nuisance, so, it can be controlled using `p4-cleanup-cache' and the period (default 10 minutes) can also be changed using `p4-cleanup-time'. * Emacs can now detect P4 Submitted files, open in buffers, and refresh them, using timers. 1999/03/17 Rajesh Vaidheeswarran * (p4-version): v5.7 * (p4-my-clients): if set will override the automatic clients completion of all P4 clients from the server. * (p4-branch), (p4-label): Added to edit branch and label specifications from Emacs! 1999/03/17 Rajesh Vaidheeswarran * (p4-version): v5.6 * (p4-buffer-action): removed. * (p4-edit), (p4-revert): Now accept prefix arguments. Most (all?) commands now ask for arguments if an argument is needed but not provided by the current buffer name, even if no prefix argument was given. * In the filelog buffer, references to files in other branches are marked as active clickable links. * (p4-find-change-numbers): New function to handle active clickable links in filelog, diff and changes buffers. * Depot names referring to deleted files are colored red and are not clickable. Depot names referring to files not in the current client view are marked gray and clicking on the link invokes `p4-print' instead of opening the file. * Fixed bad mappings of the `n' and `p' keys in some p4 buffers. * (p4-rename): Internally this function uses "p4 branch" and "p4 delete" as suggested by "p4 help rename". * The backspace key can now be used to scroll down one page (in addition to the `b' key), which is nice if you are used to the gnus newsreader. * (p4-is-vc): Unwanted side effect has been removed. The function trashed the p4 output buffer, which interfered with output displayed by `p4-edit' and `p4-revert'. * Reordered the pseudo file names used in the `p4-buffer-file-name-2' function to make the behaviour more logical. 1999/03/08 Rajesh Vaidheeswarran * (p4-version): v5.5 * We now complete clients, branches and labels too! * Added history and cache variables, and completion functions for all of these as follows: `p4-branches-history', `p4-clients-history', `p4-labels-history', `p4-branches-completion-cache', `p4-clients-completion-cache' and `p4-labels-completion-cache'. * Completion functions for the above are: `p4-branches-completion', `p4-clients-completion' and `p4-labels-completion'. * (p4-depot-completion-search), (p4-read-depot-output), (p4-depot-completion-build) modified to accept command as context since this can be generalized for all special completions. * (p4-set-client-name): uses the new completion mechanism. * (p4-set-client-hooks): New hook. Used when we set a new client using `p4-set-client-name'. This hook can be used to execute any user-defined function that is registered with it as follows: (add-hook 'p4-set-client-hooks 'user-hook) * (p4-get-server-version): Added. * (p4-get-client-root): modified to use the new client completion mechanism, and we use these functions internally in `p4-make-depot-list-buffer' and `p4-map-depot-file'. 1999/03/08 Rajesh Vaidheeswarran * (p4-version): v5.4 * Deleted files and unmapped files in clickable buffers will now show up in red and gray respectively, and will not be clickable. * (p4-executable): now searched for in known places before being set. * Very cool feature borrowed from p4browse.el (written by Amaury Forgeot d'Arc). We can now complete on depot files, and a sample function that uses it is `p4-depot-find-file' mapped to C-x p C-f (for lack of a better mapping that resembles C-x C-f). `p4-depot-find-file' also shows up on the Menus. A Whole bunch of stuff was added for that, including variables `p4-depot-filespec-history', `p4-depot-completion-cache' and functions `p4-depot-completion-search' , `p4-depot-completion-build', `p4-depot-completion' and the generic `p4-depot-output', `p4-read-depot-output' * (p4-depot-map-file): Added, exported. Can be used in other libraries to test for a mapping of a given filespec. 1999/03/02 Rajesh Vaidheeswarran * (p4-version): v5.3 1999/03/02 Peter Österlund * Changed all local lambda keymap functions to global functions, and now the documentation strings seem to work properly. * (p4-make-list-from-string): Simplified. No longer necessary to increase the `max-lisp-eval-depth' variable. * (p4-print): Modified to make buffers behave somewhat more intelligently. 1999/02/28 Rajesh Vaidheeswarran * (p4-version): v5.2 * Don't set the background face for highlighting diffs since the foreground color does a good job of that anyway. * Add a color for highlighting changes in context diffs. 1999/02/27 Peter Österlund * (p4-filelog): Revert change from 5.1 since it was incorrect. * In the diff buffers, the ability to click on the diff to jump to the corresponding file/location didn't work. * In the filelog buffers, the s and l keys for toggling between short/long mode didn't work. Fix them. 1999/02/28 Rajesh Vaidheeswarran * (p4-version): v5.1 * (p4-filelog): Fix. diff the revisions with the earlier revision as the first and the later revision as the next, instead of the now reversed diff. * Whitespace cleanup. 1999/02/27 Peter Österlund * (p4-changelog): New. In the same spirit as the `p4-filelog' function. * (p4-describe): Added. * (p4-reopen): Added. * Cleverer parsing of user entered options. * (p4-default-diff-options): New variable to change the diff format. (Defaults to "-du".) * Most commands that generate a list of file names make the files clickable, and clicking on a file opens the file in another window. * Added "less-like" commands (j, k, b, " ", <, >) for scrolling the other window from a p4-filelog or p4-changelog window. Very convenient when you are browsing a set of changes. Also added l and s to switch between long and short filelog/changelog formats. * Added key binding `n' and `p' to navigate in "diff-like" buffers. * Added more shortcut commands: C - p4-changes D - p4-describe E - p4-reopen F - p4-files H - p4-have w - p4-where * Added `p4-reopen', `p4-changes' and `p4-describe' to the menus. 1999/02/02 Rajesh Vaidheeswarran * (p4-version): v5.0 * (p4-bug-report): Added, to enable users to send suggestions/bugs via e-mail and bind to `C-x p b'. * (p4-filelog): now displays the filelog in a form from which useful things like file revision, change number, action performed on the file in that change, the user, and the p4 client can all be selected. * (p4-async-process-command): now uses `switch-to-buffer-other-window' instead of `switch-to-buffer' to maintain user's current context. 1998/12/10 Rajesh Vaidheeswarran * (p4-version): v4.1 * (p4-opened): Check for server version before setting the current client file name property, since with P4 server 98.2 `p4-where' returns three values (//depot/path //client/path //fs/path) instead of (//depot/path //client/path). 1998/10/08 Rajesh Vaidheeswarran * (p4-version): v4.0 * (p4-get-client-root): Added. to be used from other macros intent on setting local variables based on the current client's root. 1998/10/05 Rajesh Vaidheeswarran * (p4-version): v3.9 * (p4-edit) and (p4-diff): Now accept prefix-arguments. 1998/08/07 Rajesh Vaidheeswarran * (p4-version): v3.8 * Added LCD (Lisp Code Directory) Archive Entry Strings to enable archiving at the ohio-state site ftp.cis.ohio-state.edu:/pub/emacs-lisp/ 1998/07/23 Rajesh Vaidheeswarran * (p4-version): v3.7 * (p4-files): now lists files that are selectable. * (p4-vc-check): variable is now buffer-local and contains the current version number of the file. * (p4-diff2): cleaned up to remove buffer local definitions, and use the cleaner `let' instead (This was coded when I had no idea that `let' existed). * (p4-describe-bindings): Added. Bound to key `C-x p ?' that lists all the key bindings in the p4 mode. 1998/07/02 Rajesh Vaidheeswarran * (p4-version): v3.6 * Check for Emacs flavor using the `emacs-version' variable instead of similarly named defun. * Move the growing history to the end of the file. * (p4-release-notes): Added, a cons list of all the versions, and the modifications in that version, and a function `p4-release-notes' to print out the modification history and release notes, and bound to C-x p N. * (p4-quit-current-buffer): Added. Also added a key definition 'q' to the `p4-opened-map' to allow users to 'quit' the buffer without having to resort to C-x 0. Thanks to Jason Dillon for the suggestion. * (p4-opened-find-file): modified to work correctly in Emacs. 1998/06/20 Rajesh Vaidheeswarran * (p4-version): v3.5 * check keymap definition of `vc-toggle-read-only' and then substitute it with `p4-toggle-read-only'. * (p4-prefix-map): Use C-x p instead of C-x P as the map prefix. And issue a warning when users try to use the obsolete binding. * Print helpful message while submitting changes in async processes. 1998/06/19 Rajesh Vaidheeswarran * (p4-version): v3.4 * (p4-diff2): now diff's between any two depot files, not just revisions of the current file. * (p4-menu-add): now for both flavors. Added to ediff hooks. * Make the *Opened Files: <>* buffer read-only. * Use substitute-key-definition to remap the vc-toggle-read-only binding instead of assuming that it is bound to C-x C-q since that may not be true for all cases. * (p4-opened): Fix on NT Emacs. Now opens files from listing produced by `p4-opened'. 1998/06/17 Rajesh Vaidheeswarran * (p4-version): v3.3 * (p4-opened): now present selectable list of opened files that will be opened in the editor. * Added menu support for p4-opened. 1998/06/12 Rajesh Vaidheeswarran * (p4-version): v3.2 * Major overhaul of the notification process. Since there is no async process anymore, we can do autonotification elegantly within emacs now. For this the following changes were done: a. Ripped out function `p4-set-notifier' and variable `p4-notifier'. b. Added functions `p4-do-notify', `p4-set-sendmail-program' and `p4-set-user-email'. c. Modified functions `p4-notify', `p4-set-notify-list' and `p4-async-process-command'. This is how notification works: * set your email address with `p4-set-user-email' (or var `p4-user-email') * set your sendmail program (variable `p4-sendmail-program') * set the list of users you need to notify using `p4-set-notify-list' * Go ahead and submit your change! * To disable notification, (p4-set-notify-list nil) * Added menu commands for setting/getting notification list. 1998/06/11 Rajesh Vaidheeswarran * (p4-version): v3.1 * Stylistic and other coding changes pointed out by Hrvoje Niksic. * Added helpful comments to p4-change/user/client/submit buffers. * (p4-async-process-command): send output to `p4-output-buffer-name' instead of sending it to the messages log. 1998/06/11 Rajesh Vaidheeswarran * (p4-version): v3.0 * Major release number change since a lot of code has been ripped out and this fundamentally changes the way all external interaction is done. The previous release techically didnot qualify for this since p4-submit still used the client server mechanism. * All references to `server-start' and `gnuserv-start' removed. * (p4-emacs-server-start): removed. * (p4-gnuclient): removed. * (p4-set-gnu-client): removed. * (p4-async-commands): removed. * (p4-async-process-command): modified to take optional parameter and `p4-submit' also now works within that framework. 1998/06/10 Rajesh Vaidheeswarran * (p4-version): v2.7 * (p4-user), (p4-change) and (p4-client): now use the simpler and more elegant p4-async-process-command and p4-async-call-process pair to do their jobs. This leaves only p4-submit to be dealt with, after which the need for an external editor client (gnuclient/emacsclient) can be done away with. Thanks to Dima Barsky for the suggestion and sample code. 1998/06/20 Rajesh Vaidheeswarran * (p4-version): v2.6 * (p4-my-clients), (p4-strict-complete): Added to enable completion on p4 client names with `p4-set-client-name'. * (p4-set-my-clients): to set `p4-my-clients' since it is a pain for users to set an alist. * (p4-menu-add): Fix for XEmacs to ensure that it didn't complain about `p4-mode' being void when called manually in non-p4 buffers. 1998/06/09 Rajesh Vaidheeswarran * (p4-version): v2.5 * Support C-x C-q to p4-edit/p4-revert a file under P4 VC. Revert to the normal behavior otherwise. This is done by `p4-toggle-read-only'. 1998/06/09 Rajesh Vaidheeswarran * (p4-version): v2.4 * Used `checkdoc' to correct all the documentation issues that it found. * Start a server, only if one is not already in place. 1998/06/09 Rajesh Vaidheeswarran * (p4-version): v2.3 * Change all references to 'GNU Emacs' and 'XEmacs' to 'Emacs' and 'XEmacs' respectively, since the former may mistakenly portray XEmacs as a program that has nothing to do with GNU (It did originate from a GNU program), which is neither fair nor accurate. The only place where the explicit check is done for 'GNU Emacs' is in the string-match. * (p4-running-gnuemacs): renamed to `p4-running-emacs' per the above sentiment. * (p4-set-p4-port), (p4-get-p4-port): to set and get the current P4 server/port that we are attached to. 1998/06/08 Rajesh Vaidheeswarran * (p4-version): v2.2 * (p4-add): now takes prefix argument to specify optional parameters. * (p4-check-mode): modified to accept optional argument so that it can update menu of a buffer whose file has been added to p4. * Add p4-get-client-name and p4-set-client-name to the menu. 1998/06/08 Rajesh Vaidheeswarran * (p4-version): v2.1 * (p4-toggle-vc-mode): Added to administratively enable/disable the VC check (mainly for offline working, ro when a P4 server is unavailable). * Emacs Menu works now. * Standardized the Menus in XEmacs and Emacs. * Add a lot of documentation to the variables, and cleanup indentation in function documentation. 1998/06/05 Rajesh Vaidheeswarran * (p4-version): v2.0 * Technically, since 1.5 supports Emacs and XEmacs in the same file, it should have been a major release, but all the cleanup occurred only after I saw tested that thoroughly.. Hence, I'm calling this 2.0 * Remove dependency on grep-null-device and use the system-type variable to check this instead. * Fix. Make sure to use `p4-running-gnuemacs' instead of `running-gnuemacs' and `p4-running-xemacs' instead of `running-xemacs'. * (p4-force-mode-line-update): Added to wrap the modeline updation for different flavors of Emacs. * Quash all compiler warnings that are independant of Emacs flavor. The only warnings that exist are: Emacs (20.2) ================ While compiling p4-add: ** assignment to free variable p4-mode While compiling p4-emacs-server-start: ** reference to free variable server-process While compiling p4-check-mode: ** assignment to free variable p4-mode While compiling the end of the data: ** The following functions are not known to be defined: gnuserv-start, gnuserv-running-p, p4-menu-add, redraw-modeline, easy-menu-add, p4-mode-menu XEmacs (20.4) ============= While compiling p4-emacs-server-start: ** reference to free variable server-process While compiling the end of the data: ** the function server-start is not known to be defined. 1998/06/05 Rajesh Vaidheeswarran * (p4-version): v1.5 * Make p4.el work with both Emacs and XEmacs. The problem is that this might cause some compilation warnings since some functions are mutually exclusive and don't exist on both. But, testing has proved no conflicts or problems that arise due to this. * (p4-set-p4-executable): Added. * (p4-set-gnu-client): Added. * (p4-set-notifier): Added. * (p4-emacs-server-start): Added. * (p4-mode-menu): Added. * Cleanup comments and a document some more functions. 1998/06/04 Rajesh Vaidheeswarran * (p4-version): v1.4 * Split p4.el for Emacs and XEmacs 1998/06/03 Rajesh Vaidheeswarran * (p4-version): v1.3 * '/dev/null' replaced with grep-null-device for NT compatibility. * (p4-is-vc): now returns the version number if p4 owns the file. * (p4-ediff): which uses ediff to allow more interactive diffing. * (p4-noinput-exec-p4): removed, because it was the same as `p4-exec-p4'. `p4-noinput-buffer-action' and `p4-buffer-action' should probably be one routine but I left them alone for now. * changed kill-region to delete-region to avoid kill ring clutter. * replaced 'nil with nil and 't with t * (p4-output-buffer): Removed. 1998/06/03 Rajesh Vaidheeswarran * (p4-version): v1.2 * (p4-set-notify-list): Added. * (p4-get-notify-list): Added. * (p4-notify): Added. * (p4-emacs-version): Added. * The following functions now accept prefix argument (C-u) to specify optional argument like -n or ..., etc. p4-files, p4-refresh, p4-get, p4-have, p4-integ, p4-opened, p4-users, p4-where. * Now supports RCS/CVS type vc revision level display on mode line, and menu bar support. 1998/02/24 Rajesh Vaidheeswarran * (p4-version): v1.1 * Cleanup and minor fixes. 1997/03/27 Rajesh Vaidheeswarran * (p4-version): v1.0 * Formally maintained by Rajesh Vaidheeswarran. * Applied GNU GPL to the file. 1996/??/?? Eric Promislow * Created.