Skip to content
Snippets Groups Projects
Commit 1b5f8d6e authored by Eric Vidal's avatar Eric Vidal :speech_balloon:
Browse files

66-enable,66-disable: remove dir_cmpndel

parent e8112065
No related branches found
No related tags found
No related merge requests found
...@@ -585,19 +585,31 @@ int main(int argc, char const *const *argv,char const *const *envp) ...@@ -585,19 +585,31 @@ int main(int argc, char const *const *argv,char const *const *envp)
/** resolve */ /** resolve */
memcpy(svdir + svdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ; memcpy(svdir + svdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ;
svdir[svdirlen + SS_RESOLVE_LEN] = 0 ; svdir[svdirlen + SS_RESOLVE_LEN] = 0 ;
size_t workdirlen = workdir.len - 1;
char srcresolve[workdirlen + SS_RESOLVE_LEN + 1] ; if (rm_rf(svdir) < 0)
memcpy(srcresolve,workdir.s,workdirlen) ;
memcpy(srcresolve + workdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ;
srcresolve[workdirlen + SS_RESOLVE_LEN] = 0 ;
if (!dir_cmpndel(srcresolve,svdir,""))
{ {
if (!resolve_pointo(&saresolve,base.s,live.s,tree.s,treename,0,SS_RESOLVE_SRC))
strerr_diefu1x(111,"set revolve pointer to source") ;
saresolve.len--;
if (!stralloc_cats(&saresolve,SS_RESOLVE)) retstralloc(111,"main") ;
if (!stralloc_0(&saresolve)) retstralloc(111,"main") ;
if (!resolve_pointo(&swap,base.s,live.s,tree.s,treename,0,SS_RESOLVE_BACK))
strerr_diefu1x(111,"set revolve pointer to source") ;
swap.len--;
if (!stralloc_cats(&swap,SS_RESOLVE)) retstralloc(111,"main") ;
if (!stralloc_0(&swap)) retstralloc(111,"main") ;
if (!hiercopy(swap.s,saresolve.s))
{
cleanup(workdir.s) ;
strerr_diefu4sys(111,"to copy tree: ",saresolve.s," to ", swap.s) ;
}
cleanup(workdir.s) ; cleanup(workdir.s) ;
strerr_diefu4sys(111,"compare resolve directory: ",srcresolve," to: ",svdir) ; strerr_diefu2sys(111,"remove directory: ", svdir) ;
} }
svdir[svdirlen] = 0 ; svdir[svdirlen] = 0 ;
if (!hiercopy(workdir.s,svdir)) if (!hiercopy(workdir.s,svdir))
{ {
if (!resolve_pointo(&saresolve,base.s,live.s,tree.s,treename,0,SS_RESOLVE_SRC)) if (!resolve_pointo(&saresolve,base.s,live.s,tree.s,treename,0,SS_RESOLVE_SRC))
...@@ -618,7 +630,7 @@ int main(int argc, char const *const *argv,char const *const *envp) ...@@ -618,7 +630,7 @@ int main(int argc, char const *const *argv,char const *const *envp)
cleanup(workdir.s) ; cleanup(workdir.s) ;
strerr_diefu4sys(111,"to copy tree: ",workdir.s," to ", svdir) ; strerr_diefu4sys(111,"to copy tree: ",workdir.s," to ", svdir) ;
} }
cleanup(workdir.s) ; cleanup(workdir.s) ;
stralloc_free(&base) ; stralloc_free(&base) ;
......
...@@ -426,17 +426,29 @@ int main(int argc, char const *const *argv,char const *const *envp) ...@@ -426,17 +426,29 @@ int main(int argc, char const *const *argv,char const *const *envp)
/** resolve */ /** resolve */
memcpy(svdir + svdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ; memcpy(svdir + svdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ;
svdir[svdirlen + SS_RESOLVE_LEN] = 0 ; svdir[svdirlen + SS_RESOLVE_LEN] = 0 ;
size_t workdirlen = workdir.len - 1;
char srcresolve[workdirlen + SS_RESOLVE_LEN + 1] ; if (rm_rf(svdir) < 0)
memcpy(srcresolve,workdir.s,workdirlen) ;
memcpy(srcresolve + workdirlen,SS_RESOLVE,SS_RESOLVE_LEN) ;
srcresolve[workdirlen + SS_RESOLVE_LEN] = 0 ;
if (!dir_cmpndel(srcresolve,svdir,""))
{ {
if (!resolve_pointo(&saresolve,base.s,live.s,tree.s,treename,0,SS_RESOLVE_SRC))
strerr_diefu1x(111,"set revolve pointer to source") ;
saresolve.len--;
if (!stralloc_cats(&saresolve,SS_RESOLVE)) retstralloc(111,"main") ;
if (!stralloc_0(&saresolve)) retstralloc(111,"main") ;
if (!resolve_pointo(&swap,base.s,live.s,tree.s,treename,0,SS_RESOLVE_BACK))
strerr_diefu1x(111,"set revolve pointer to source") ;
swap.len--;
if (!stralloc_cats(&swap,SS_RESOLVE)) retstralloc(111,"main") ;
if (!stralloc_0(&swap)) retstralloc(111,"main") ;
if (!hiercopy(swap.s,saresolve.s))
{
cleanup(workdir.s) ;
strerr_diefu4sys(111,"to copy tree: ",saresolve.s," to ", swap.s) ;
}
cleanup(workdir.s) ; cleanup(workdir.s) ;
strerr_diefu4sys(111,"compare resolve directory: ",srcresolve," to: ",svdir) ; strerr_diefu2sys(111,"remove directory: ", svdir) ;
} }
svdir[svdirlen] = 0 ; svdir[svdirlen] = 0 ;
if (!hiercopy(workdir.s,svdir)) if (!hiercopy(workdir.s,svdir))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment