' ---------------------------------------------------------------------------------------
' Nombre / Name                                                                       1.0
' -------------
'   ReqF$(title$,idir$,ifile$,ipat$)
'
' ¿Qué hace? / What do it?
' ------------------------
'   Pide un fichero a través de una petición ASL.
'   Ask a file via an ASL filerequest.
'
' Argumentos / Arguments
' ----------------------
'   title$    Título de la petición / Request title.
'   idir$     Directorio inicial / Initial dir.
'   ifile$    Fichero inicial / Initial file.
'   ipat$     Patrón inicial / Initial pattern.
'
' Devuelve / Returns
' ------------------
'   CADENA / STRING
'   Fichero seleccionado con su camino completo.
'   Selected file with their full path.
'
' Requiere / Requires
' -------------------
'   Abrir/Open:
'    asl.library
'         AllocAslRequest, FreeAslRequest, AslRequest
'   Incluir/Include:
'    asl.bh, utility.bc
'
' Notas / Notes
' -------------
'   ---
' ---------------------------------------------------------------------------------------

'REM $include asl.bh
'REM $include utility.bc

FUNCTION ReqF$(title$,idir$,ifile$,pat$)
LOCAL fr&,frtags&,tmp$

   	ReqF$ = ""

	' ¡Recuerde! Tamaño de la matriz = nº de etiquetas * 2
	'          Remember! Array size = tags * 2
	' ----------------------------------------------------
	DIM frtags&(12)
	
	TAGLIST VARPTR(frtags&(0)), _
		ASLFR_TitleText&,title$, _
		ASLFR_InitialFile&,ifile$, _
		ASLFR_InitialDrawer&, idir$, _
		ASLFR_InitialPattern&, pat$, _
		ASLFR_DoPatterns&, 1&,_
		TAG_DONE&

	BREAK STOP
	
	fr& = AllocAslRequest&(ASL_FileRequest&,VARPTR(frtags&(0)))

	IF fr& THEN
		IF AslRequest&(fr&,0) THEN
			tmp$ = PEEK$(PEEKL(fr&+fr_Drawer%))
			IF tmp$<> "" AND RIGHT$(tmp$,1) <> ":" AND RIGHT$(tmp$,1) <> "/" THEN
				tmp$ = tmp$ + "/"
			END IF
			ReqF$ = tmp$ +PEEK$(PEEKL(fr&+fr_File%))
		END IF

		FreeAslRequest fr&

	END IF

	BREAK ON

END FUNCTION
