At 21:21 02/11/2004 +0100, you wrote:
>No. I'm adding the cache timeout (the same as in GetFullStatus()) later. 
>But right now I'm busy with other things.
Appended is a patch to do this.
BTW, I don't know if this is my broken copy, the intention, or what, but 
when I right-click a modified file and choose create patch, I get a patch 
which includes *every* modified file in the current folder.
I'd also like to be able to choose to have a patch put on the clipboard, 
but I should probably implement that myself if I want it...
Cheers,
Will
Index: SVNFolderStatus.cpp
===================================================================
--- SVNFolderStatus.cpp (revision 1896)
+++ SVNFolderStatus.cpp (working copy)
@@ -99,7 +99,7 @@
         svn_client_ctx_t *                      ctx;
         apr_hash_t *                            statushash;
         apr_pool_t *                            pool;
-       svn_error_t *                           err;
+       svn_error_t *                           err = NULL;  // If 
svn_client_status comes out through catch(...), err is unassigned
         const char *                            internalpath;
         //dont' build the cache if an instance of TortoiseProc is running
@@ -250,17 +250,8 @@
         if (! g_ShellCache.HasSVNAdminDir(filepath, bIsFolder))
                 return &invalidstatus;
-       filestatuscache * ret = NULL;
-       sCacheKey.assign(filepath);
-       std::map<stdstring, filestatuscache>::iterator iter;
-       if ((iter = m_cache.find(sCacheKey)) != m_cache.end())
-       {
-               ATLTRACE2(_T("cache found for %s\n"), filepath);
-               ret = (filestatuscache *)&iter->second;
-               DWORD now = GetTickCount();
-               if ((now >= m_TimeStamp)&&((now - m_TimeStamp) > 
GetTimeoutValue()))
-                       ret = NULL;
-       }
+
+       filestatuscache * ret = GetCachedItem(filepath);
         if (ret)
                 return ret;
@@ -274,7 +265,14 @@
         std::map<stdstring, filestatuscache>::iterator iter;
         if ((iter = m_cache.find(sCacheKey)) != m_cache.end())
         {
-               return (filestatuscache *)&iter->second;
+               //ATLTRACE2(_T("cache found for %s\n"), filepath);
+               DWORD now = GetTickCount();
+               if ((now >= m_TimeStamp)&&((now - m_TimeStamp) > 
GetTimeoutValue()))
+               {
+                       // Cache is timeed-out
+                       return NULL;
+               }
+               return &iter->second;
         }
         return NULL;
  }
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Tue Nov  2 21:48:47 2004