Paul Dupuis wrote:

> I just filed a serious bug for LC904 that is only under OSX. When
> using 'asnwer file <prompt> with type <typelist>' the selected type is
> supposed to be returned in 'the result'. This works as expected under
> Windows, but under OSX using LC904 STABLE, 'the result' is the same as
> the 'it', both contain the file path selected.
>
> Please see https://quality.livecode.com/show_bug.cgi?id=22070

While it will be useful to have this fixed, the current state of macOS should provide a mildly-tedious-but-not-difficult workaround:

The older Finder type codes (the four-character identifiers hidden away in the file's metadata) are long deprecated, and for more than a decade macOS relies on file extensions to determine type.

Since the range of type options is limited to types you set, a few minutes writing a function to match the file extension with the type categories you provided should at least get you going while waiting for an engine fix.

In the odd case where you may encounter a very old (or misnamed) file that has no type extension in its name, you could extend the function to see if the old Finder type is included in info provided with "the detailed files".

If you were super-thorough, you might even provide another check of file contents to confirm type. Image formats have magic numbers, and text formats have patterns identifiable within a reasonably small number of bytes. A short read can confirm the type of misnamed files even beyond what can be expected with "answer file".


Psuedocode:

  getFileNameExtension(fileName)
  if absent
     getDetailedFilesInfo
     convertFourCharTypetoExtensionString
  end if
  switch fileType
     case "png"
     case "jpg"
     case "jpeg"
        return "image"
        break
     case "text"
     case "rtf"
        return "text"
        break
   end switch
   -- bonus:
   confirmTypeByReadingSomeContent


The case block for your supported types is likely still in your code base. Copying it to a new function and adding the earlier step of handling missing types by Finder code (if not already there) will make short work of this.

--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to