diff options
Diffstat (limited to '')
-rw-r--r-- | zdiff.cc | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -1,5 +1,5 @@ /* Zdiff - decompress and compare two files line by line - Copyright (C) 2010-2020 Antonio Diaz Diaz. + Copyright (C) 2010-2021 Antonio Diaz Diaz. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -116,7 +116,8 @@ extern "C" void remove_fifos() /* Set fifonames[i] to "${TMPDIR}/<coded_pid>[_-]<basename(filenames[i])>" - and create FIFOs. */ + and create FIFOs. The pid is coded in little endian order. +*/ bool set_fifonames( const std::string filenames[2] ) { enum { num_codes = 36 }; @@ -126,13 +127,12 @@ bool set_fifonames( const std::string filenames[2] ) if( p ) { fifonames[0] = p; fifonames[0] += '/'; } else fifonames[0] = "/tmp/"; int n = getpid(); - unsigned pos = fifonames[0].size(); - do fifonames[0].insert( pos, 1, codes[n % num_codes] ); - while( n /= num_codes ); - pos = fifonames[0].size(); + do fifonames[0] += codes[n % num_codes]; while( n /= num_codes ); + const unsigned pos = fifonames[0].size(); + fifonames[0] += '_'; fifonames[1] = fifonames[0]; - fifonames[0] += '_'; fifonames[0] += my_basename( filenames[0].c_str() ); - fifonames[1] += '_'; fifonames[1] += my_basename( filenames[1].c_str() ); + fifonames[0] += my_basename( filenames[0].c_str() ); + fifonames[1] += my_basename( filenames[1].c_str() ); if( fifonames[1] == fifonames[0] ) fifonames[1][pos] = '-'; for( int i = 0; i < 2; ++i ) |