Loading Makefile.version +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ export PROJECT=drspine export VERSION_MAJOR=1 export VERSION_MINOR=4 export VERSION_RELEASE=6 export VERSION_RELEASE=7 export PROJLIB=lib$(PROJECT).a export PROJARCH=$(PROJECT)-$(VERSION_MAJOR).$(VERSION_MINOR) Loading sources/os_utils.F90 +11 −4 Original line number Diff line number Diff line Loading @@ -250,16 +250,23 @@ contains integer, intent(in) :: maxlength character(len=maxlength) :: cresult ! integer :: ilen integer :: ilen, iext ilen = len_trim(filename) cresult = repeat(' ',maxlength) if(ilen<=0) return ! if name is shorter than maxlength return unchanged if(ilen<=maxlength) then cresult(1:ilen) = filename(1:ilen) else ! remove extension ilen = index(filename, '.', .true.) cresult = filename(ilen-maxlength:ilen-1) ! remove extension (if found) iext = index(filename, '.', .true.) cresult = filename(max(ilen-maxlength,1):ilen-1) if(iext>maxlength) then cresult = filename(max(iext-maxlength, 1):iext-1) else cresult = filename(max(ilen-maxlength+1,1):ilen) end if endif end function truncate_filename Loading tests/testosutils.f90 +23 −4 Original line number Diff line number Diff line Loading @@ -42,11 +42,30 @@ contains end subroutine test_search_path subroutine test_truncate_filename() character(len=1024) :: cfilename1, cfilename2, cfilename3, cfilename4 write(*,'(a)') '===> test_truncate_filename' call assert('/SNS/NSE/IPTS-01234/s56789.echo'==trim(truncate_filename('/SNS/NSE/IPTS-01234/s56789.echo',64)),& 'full file name (1)') call assert('234/s56789'==trim(truncate_filename('/SNS/NSE/IPTS-01234/s56789.echo',10)),& 'short file name (1)') cfilename1='/SNS/NSE/IPTS-01234/s9876.echo' cfilename2='/SNS/NSE/IPTS-01234/s12345.echo' cfilename3='/pathto/file/SNS/NSE/IPTS-01234/s9876543210.echo' cfilename4='/pathto/file/SNS/NSE/IPTS-01234/s9876543210' print *, "["//trim(truncate_filename(cfilename1, 10))//"]", len_trim(cfilename1) print *, "["//trim(truncate_filename(cfilename2, 64))//"]", len_trim(cfilename2) print *, "["//trim(truncate_filename(cfilename3, 26))//"]", len_trim(cfilename3) print *, "["//trim(truncate_filename(cfilename4, 26))//"]", len_trim(cfilename4) ! call assert('/SNS/NSE/IPTS-01234/s9876.echo'==trim(truncate_filename(cfilename1, 64)),'full file name (1)') call assert('1234/s9876'==trim(truncate_filename(cfilename1, 10)), 'short filename (1)') call assert('/SNS/NSE/IPTS-01234/s12345.echo'==trim(truncate_filename(cfilename2, 64)),'full file name (2)') call assert('/SNS/NSE/IPTS-01234/s12345'==trim(truncate_filename(cfilename2, 26)), 'short filename (2)') call assert('/pathto/file/SNS/NSE/IPTS-01234/s9876543210.echo'==trim(truncate_filename(cfilename3, 64)),'full file name (3)') call assert('NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename3, 26)), 'short filename (3)') call assert('/pathto/file/SNS/NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename4, 64)),'full file name (4)') call assert('NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename4, 26)), 'short filename (4)') end subroutine test_truncate_filename Loading Loading
Makefile.version +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ export PROJECT=drspine export VERSION_MAJOR=1 export VERSION_MINOR=4 export VERSION_RELEASE=6 export VERSION_RELEASE=7 export PROJLIB=lib$(PROJECT).a export PROJARCH=$(PROJECT)-$(VERSION_MAJOR).$(VERSION_MINOR) Loading
sources/os_utils.F90 +11 −4 Original line number Diff line number Diff line Loading @@ -250,16 +250,23 @@ contains integer, intent(in) :: maxlength character(len=maxlength) :: cresult ! integer :: ilen integer :: ilen, iext ilen = len_trim(filename) cresult = repeat(' ',maxlength) if(ilen<=0) return ! if name is shorter than maxlength return unchanged if(ilen<=maxlength) then cresult(1:ilen) = filename(1:ilen) else ! remove extension ilen = index(filename, '.', .true.) cresult = filename(ilen-maxlength:ilen-1) ! remove extension (if found) iext = index(filename, '.', .true.) cresult = filename(max(ilen-maxlength,1):ilen-1) if(iext>maxlength) then cresult = filename(max(iext-maxlength, 1):iext-1) else cresult = filename(max(ilen-maxlength+1,1):ilen) end if endif end function truncate_filename Loading
tests/testosutils.f90 +23 −4 Original line number Diff line number Diff line Loading @@ -42,11 +42,30 @@ contains end subroutine test_search_path subroutine test_truncate_filename() character(len=1024) :: cfilename1, cfilename2, cfilename3, cfilename4 write(*,'(a)') '===> test_truncate_filename' call assert('/SNS/NSE/IPTS-01234/s56789.echo'==trim(truncate_filename('/SNS/NSE/IPTS-01234/s56789.echo',64)),& 'full file name (1)') call assert('234/s56789'==trim(truncate_filename('/SNS/NSE/IPTS-01234/s56789.echo',10)),& 'short file name (1)') cfilename1='/SNS/NSE/IPTS-01234/s9876.echo' cfilename2='/SNS/NSE/IPTS-01234/s12345.echo' cfilename3='/pathto/file/SNS/NSE/IPTS-01234/s9876543210.echo' cfilename4='/pathto/file/SNS/NSE/IPTS-01234/s9876543210' print *, "["//trim(truncate_filename(cfilename1, 10))//"]", len_trim(cfilename1) print *, "["//trim(truncate_filename(cfilename2, 64))//"]", len_trim(cfilename2) print *, "["//trim(truncate_filename(cfilename3, 26))//"]", len_trim(cfilename3) print *, "["//trim(truncate_filename(cfilename4, 26))//"]", len_trim(cfilename4) ! call assert('/SNS/NSE/IPTS-01234/s9876.echo'==trim(truncate_filename(cfilename1, 64)),'full file name (1)') call assert('1234/s9876'==trim(truncate_filename(cfilename1, 10)), 'short filename (1)') call assert('/SNS/NSE/IPTS-01234/s12345.echo'==trim(truncate_filename(cfilename2, 64)),'full file name (2)') call assert('/SNS/NSE/IPTS-01234/s12345'==trim(truncate_filename(cfilename2, 26)), 'short filename (2)') call assert('/pathto/file/SNS/NSE/IPTS-01234/s9876543210.echo'==trim(truncate_filename(cfilename3, 64)),'full file name (3)') call assert('NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename3, 26)), 'short filename (3)') call assert('/pathto/file/SNS/NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename4, 64)),'full file name (4)') call assert('NSE/IPTS-01234/s9876543210'==trim(truncate_filename(cfilename4, 26)), 'short filename (4)') end subroutine test_truncate_filename Loading