Ignore:
Timestamp:
Mar 26, 2000, 6:34:57 PM (25 years ago)
Author:
cbratschi
Message:

merged with Corel WINE 20000324

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comdlg32/filetitle.c

    r2607 r3243  
    44 * Copyright 1994 Martin Ayotte
    55 * Copyright 1996 Albrecht Kleine
     6 *
     7 * Corel WINE 20000324 level
    68 */
    79
     
    1315#include "debugtools.h"
    1416
    15 #include "heap.h"       /* Has to go */
     17#include "heap.h"       /* Has to go */
    1618
    1719DEFAULT_DEBUG_CHANNEL(commdlg)
     
    2426
    2527/***********************************************************************
    26  *      GetFileTitleA           (COMDLG32.8)
     28 *      GetFileTitleA           (COMDLG32.8)
    2729 *
    2830 */
    2931short WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, UINT cbBuf)
    3032{
    31         int i, len;
     33        int i, len;
    3234
    33         TRACE("(%p %p %d); \n", lpFile, lpTitle, cbBuf);
     35        TRACE("(%p %p %d); \n", lpFile, lpTitle, cbBuf);
    3436
    35         if(lpFile == NULL || (lpTitle == NULL && cbBuf != 0))
    36                 return -1;
     37        if(lpFile == NULL || (lpTitle == NULL))
     38                return -1;
    3739
    38         len = strlen(lpFile);
     40        len = strlen(lpFile);
    3941
    40         if (len == 0)
    41                 return -1;
     42        if (len == 0)
     43                return -1;
    4244
    43         if(strpbrk(lpFile, "*[]"))
    44                 return -1;
     45        if(strpbrk(lpFile, "*[]"))
     46                return -1;
    4547
    46         len--;
     48        len--;
    4749
    48         if(lpFile[len] == '/' || lpFile[len] == '\\' || lpFile[len] == ':')
    49                 return -1;
     50        if(lpFile[len] == '/' || lpFile[len] == '\\' || lpFile[len] == ':')
     51                return -1;
    5052
    51         for(i = len; i >= 0; i--)
    52         {
    53                 if (lpFile[i] == '/' ||  lpFile[i] == '\\' ||  lpFile[i] == ':')
    54                 {
    55                         i++;
    56                         break;
    57                 }
    58         }
     53        for(i = len; i >= 0; i--)
     54        {
     55                if (lpFile[i] == '/' ||  lpFile[i] == '\\' ||  lpFile[i] == ':')
     56                {
     57                        i++;
     58                        break;
     59                }
     60        }
    5961
    60         if(i == -1)
    61                 i++;
     62        if(i == -1)
     63                i++;
    6264
    63         TRACE("---> '%s' \n", &lpFile[i]);
    64    
    65         len = strlen(lpFile+i)+1;
    66         if(cbBuf < len)
    67                 return len;
     65        TRACE("---> '%s' \n", &lpFile[i]);
    6866
    69        /* The lpTitle buffer is big enough, perform a simple copy */
    70         strcpy(lpTitle, &lpFile[i]);
    71         return 0;
     67        len = strlen(lpFile+i)+1;
     68        if(cbBuf < len)
     69                return len;
     70
     71        strncpy(lpTitle,&lpFile[i],len);
     72        return 0;
    7273}
    7374
    7475
    7576/***********************************************************************
    76  *      GetFileTitleW           (COMDLG32.9)
     77 *      GetFileTitleW           (COMDLG32.9)
    7778 *
    7879 */
    7980short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, UINT cbBuf)
    8081{
    81         LPSTR file = HEAP_strdupWtoA(GetProcessHeap(), 0, lpFile);      /* Has to go */
    82         LPSTR title = HeapAlloc(GetProcessHeap(), 0, cbBuf);
    83         short   ret;
     82        LPSTR file = HEAP_strdupWtoA(GetProcessHeap(), 0, lpFile);      /* Has to go */
     83        LPSTR title = HeapAlloc(GetProcessHeap(), 0, cbBuf);
     84        short   ret;
    8485
    85         ret = GetFileTitleA(file, title, cbBuf);
     86        ret = GetFileTitleA(file, title, cbBuf);
    8687
    87         lstrcpynAtoW(lpTitle, title, cbBuf);
    88         HeapFree(GetProcessHeap(), 0, file);
    89         HeapFree(GetProcessHeap(), 0, title);
    90         return ret;
     88        lstrcpynAtoW(lpTitle, title, cbBuf);
     89        HeapFree(GetProcessHeap(), 0, file);
     90        HeapFree(GetProcessHeap(), 0, title);
     91        return ret;
    9192}
    9293
    9394
    9495/***********************************************************************
    95  *      GetFileTitle16          (COMMDLG.27)
     96 *      GetFileTitle16          (COMMDLG.27)
    9697 */
    9798short WINAPI GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf)
    9899{
    99         return GetFileTitleA(lpFile, lpTitle, cbBuf);
     100        return GetFileTitleA(lpFile, lpTitle, cbBuf);
    100101}
    101102
Note: See TracChangeset for help on using the changeset viewer.