any_manifest_changed Function

private function any_manifest_changed(files, changed_idx, changed_count) result(hit)

Return whether the changed set contains fpm.toml.

This detection is based on the basename only and therefore triggers if any watched file named fpm.toml changes (main or dependency manifests).

Arguments

Type IntentOptional Attributes Name
type(string_t), intent(in), allocatable :: files(:)
integer, intent(in) :: changed_idx(:)
integer, intent(in) :: changed_count

Return Value logical


Calls

proc~~any_manifest_changed~~CallsGraph proc~any_manifest_changed any_manifest_changed basename basename proc~any_manifest_changed->basename

Called by

proc~~any_manifest_changed~~CalledByGraph proc~any_manifest_changed any_manifest_changed proc~watcher_run watcher_t%watcher_run proc~watcher_run->proc~any_manifest_changed

Source Code

   logical function any_manifest_changed(files, changed_idx, changed_count) result(hit)
      type(string_t), allocatable, intent(in) :: files(:)
      integer, intent(in) :: changed_idx(:)
      integer, intent(in) :: changed_count
      integer :: j, idx
      character(len=:), allocatable :: b
      hit = .false.
      if (.not. allocated(files)) return
      do j = 1, changed_count
         idx = changed_idx(j)
         if (idx < 1 .or. idx > size(files)) cycle
         b = basename(files(idx)%s)
         if (b == "fpm.toml") then
            hit = .true.
            return
         end if
      end do
   end function any_manifest_changed