From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id F2B9B42FD8 for ; Tue, 17 May 2022 15:28:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 40FC768B38D; Tue, 17 May 2022 18:28:18 +0300 (EEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08olkn2098.outbound.protection.outlook.com [40.92.46.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 521FC68A2F6 for ; Tue, 17 May 2022 18:28:12 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d8QU6WKnx3A7EyXPKbpxOGYN3KgT196BDbJGhcgoOgOl2cKU3vzKu/JqIWohUBvRN5t/wMQDkw+/FerG+sLkNzgzFobr34/quOny/2yU4tBOCXbyyYen4S6iD8YjuipijogtIOMG1vRZRW9fhG3wavdtyP/UVGmOsRMI3vyA23nIIVHvpwLTl69Y9ob22OsGppGZXIVHJDoI3VmUEtL0lwGwAFh8MrPkdiCKJZECqfblBPZcdcm8KaS4fwOQTJTVifdCESNMp0HCsFYciA/7aLcoqDNwQ65lxBJvFdHkdHfHPWsDo05zpYpAxpwKzQ9ue5Np8LX3E5RPs4eov+c2xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mZR1kDV9ZjTYi9kWfLGse978+EYZ9sy0h9+nsib7MB4=; b=Tqo/Vse8xPnc/VzO9YMI7b/FxwdtmaZEGJO2ofNi9vk0wthxBDVs7GxudQNvo0AIby4dcsq5iP20Uu8K6R+gToIZPBs0QzokcvGYniF3YaFQBnt5G+KiJx2By9981vnC+Pl3FKIFIoKLtWxhz8BAacmnT4jli+6tibB3jAA25s9vP+9CPA28tX88lycHuTtXohpAomz6U753k116wRVVmRDCKqvq7RHrxWHuOYSvWqk+i9GoK46itdG//2IGc8A8aop5EZM+jJiBqKm0P1ZefXEDDK3wGHf5b0ELPLuinmySaj7xDjVKEWNPZAmwQslRAwX1ypQDAH5H0DbujJ2EBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mZR1kDV9ZjTYi9kWfLGse978+EYZ9sy0h9+nsib7MB4=; b=pxssTuilKmhOynLecGrJaGyqqQh3W8qzUplRcQVLFsbqctYzDaWXgM61ZeUyoePRPLAHBSyk5XlsWFUrvDhbO/0c2QT7Vl2ZeMqc/tGiycgtDI1lq8/FHX3yZK36MdN44sHxOpfYiTTxLswFZ6/ltt8YXC0oB1CVHic+XlaYKb/fsy7sLjt+N7J+RCbKG353mK2X8Uleu+VZHkbpjFZENWHUw41wWUFT/3WRHOFwiM2QOS8faMWdwDlQm9NEo5gtlNoQLJot/ep8lOurDYlk6Wr8K58QKoLNXWp6d3VQM3OievLFQzSLE6YuierNf5R5MBqrDq3kOQXAiF5m60UTPA== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM8P223MB0110.NAMP223.PROD.OUTLOOK.COM (2603:10b6:5:316::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Tue, 17 May 2022 15:28:08 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::c536:493f:7cda:53dc]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::c536:493f:7cda:53dc%3]) with mapi id 15.20.5250.018; Tue, 17 May 2022 15:28:08 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v2 1/2] avutil/wchar_filename, file_open: Support long file names on Windows Thread-Index: AQHYaPywrYyA1nT6+EGODV6JkiNpta0h8QeQgAE8egCAAAMJoA== Date: Tue, 17 May 2022 15:28:08 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [6YAXAkPudd6TcVOaf2bk13B5ADHuvcp6] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 88b1835b-2237-4dda-ee59-08da3819d8a7 x-ms-traffictypediagnostic: DM8P223MB0110:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PPGbN6AfWrampWDkhLHhqoIk1BETsnzXUkqchXJas7J68hb4TgycacckzTXDPHF98WPCqaC9eFJj/GvPj2RpQCuyyZamTEnNdpjxHFHXUJaQTN3NJ4TowGgTx44ZMIn4QxHxlsF2JdeOaqilgRz4xbXkL/tumbqMS6XD+kqkpgem0nnZwh8DLV++me3DbmramzU2+jJF5Wzu3ME48RrRhq6okN0v34Phvkxy3GRP9Tt1tMoLtJ+JSzy1TdYDTWn4b8aygMl6ThHOmNGk1gFyGZSHcHa92z5S24eFoG5nwV6ypZew0DgoFtafE+QrvMCqf0ozKiRKoNbUL8RVGc9Kjtc1X7ruFx9hCKG8AUBD//wjq6vle6ad+HRIY/EB2itCQ9GmdjHgIhjl9iedDiyDxO4keuNP+FlYu+Y7m/OwGjcMsnA4RHzngl43swdJgSO3QnqhaRRfKlq0SsCRrR8BCH46N+uT6A4458BeV5g4JnM41LuZL/B36jhQ+BZWeBuw3+W450jAoWDId4YIft+ZY81ZCeyuGCG7PMxe4kZjEpiwYopmjSZpttEdchF4DMWX54p2ZMstAPfVkm1oxB4yEEVrC9tkm4t90fdxBFu2bLR1HgbfNfjaTMXu5DiCtVEL x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WGdjTFBhR1Y2WE90SXlzd2lOL0RpS1FRVzlMcWxPU1kyNCtHeSt3bU44TDBC?= =?utf-8?B?T1B0Z05mOHBWWmxDYkZmWk1uRHdpV1pWdkJ1Yjc4eDUzc1dGaUNyckQ4azBx?= =?utf-8?B?UkdZWmZRdjBnNUJteXIxZmFpK1A0MHIzQTVoREs2d0NUVkhqSk9JTEMxdmRQ?= =?utf-8?B?ZlQvQkVJN2JVTXJkUzNOTjEwd1I0WmVFYlhmTnM3ZjZycWpCMkhiM1piclpV?= =?utf-8?B?b3dlejd2VmhHYi9oQjI1VnRReGd2dEw1c3lkU1ZOS1lvVUpxeGhJR0p0ZWFU?= =?utf-8?B?MnVRY29XWUlwd2lzZFN1SHNIczFMMjJYNDJ4QzJKSlo2K3p4bHlGMEYvdmxn?= =?utf-8?B?M2VpOTNqVy9pbXJoQUQ5WkNjM0tOekxvQ0RIOEVWcDZ4QXVlYThPS2hhOVdM?= =?utf-8?B?VE1RTG9XelNjMFR0bkRSMDlmTlV1NXAzZy9ibmJPN3BFaERQbll0OGpQSUtZ?= =?utf-8?B?Q1BQbW04cTVScFoxa052Skk4WTc2VDNPRHdCNXFveGtrdlpNYUlCdHR2d2x2?= =?utf-8?B?TTR2QWQzUVBKNE41NUxwYjJTTVJZVU0xSW0zYVk0VWxaNmRZYkQ5OWlZek1L?= =?utf-8?B?L3UyMnMvYllteWNtVzNkZ1cwRjMvMlZwMEVNQmRKU0prOXdad29yZGlTNTgz?= =?utf-8?B?Q1c0OVlkbjFjLzlqR09SalVtR0RpY0VHR1NWZktMSGs2NGtvWHFYd0d3OWl4?= =?utf-8?B?U2t6OHpiSi9ZeW8zVUZJZHc3eHJ3eVBncDZDVVM2NTlHd0ZLdkNRUFk1RG0z?= =?utf-8?B?SjZxNmlTbW9XYjNHWEJielRsRnlQL2liT2crcHdLY2liSHo4bEtZdWJQamxs?= =?utf-8?B?cGJkclBZMG5GdkVMM0tuYUNQTWRSMmxxeVVKNVJrNVdyQmJVa0tQZ2dicFRX?= =?utf-8?B?WXVNbmpyTGk2ZGIycDl4a0cwQnc4b0J5WllkVGhTbS9YblAra2JHclBFYVFL?= =?utf-8?B?ck1GYmZscUxQOUQrckhlTHdaWVNSbEJ4NmVWZjVZOCtNYmxuUUQyVnFZeHVl?= =?utf-8?B?S1dUaWJULzUrSFFONDRzYkVXNG0zL09JbkN2dkFQWmhFZWNZOHZqQ2N1OGhK?= =?utf-8?B?eTRYOUtiTnFFSnRFL2xDS2ZINEVqVnhqczFzOVNJQndndW93ZEdnUmM1Z2xQ?= =?utf-8?B?bGNZY0dSWGp0S3RJR0FJUTZ3VWQ5NG5kcTFBSDVuNHM0MnpCYzNNQ2lka3NM?= =?utf-8?B?eWJHUHpvUGVsZFVEcml5QUlpUHlUVEFHNVJkM0w4Y1lLTnB4dURIS3N1dHEr?= =?utf-8?B?UE8wNUNsTTFmQ3FtdUpWUG5iYmNVOGxVWHRYbzNPY2ZJTTNneVAwMllvQjB1?= =?utf-8?B?LzVUY3YwVFF6SlFuVU0rV2lQUy9Ba3Q5ZEpDMHkvMDV5aG1nZlFJZUVablRI?= =?utf-8?B?ZTZLK1pYSTJYc1FUOUNCbmR5MGhMSjMyR3V5dHBKbUEvUTBwTlZGZzdGYnBY?= =?utf-8?B?Yk1ZbVl5eFBQMDZTM1ppamcvUC9MdkhHNWFhVHRxTXFSVWNCaXBuVmN3Tm1F?= =?utf-8?B?SUlza2l5cGJSdjkxN3BieC9tT1VmVGlhUDZKdTVDYkYyL25JKzE0RVF0anY3?= =?utf-8?B?Ri9vUHFVdzFIV1djOFlqQ2FpTUFBQXRHQnBaaG9OTVFKVGR4S0FlcURCOTJ4?= =?utf-8?B?RjZVNU9uMWhwUnVPMTg1dGU4OERaWG5mV2ppVWtZWmxNSTdVbE1aSXJ5Y1lh?= =?utf-8?B?WWpheUhPSXZUaW45M0NUNm02aFN0T25rOGNBRzFGeklSRUJ5YWc1aGdMd3Js?= =?utf-8?B?Z3FWaEpiam5pTUxtQmdJTmpxWXhyZ1d1dERHOVNqNEJJSTlIb3YwY2VoUzlh?= =?utf-8?B?Zzd3ZGN2Nld1cTdnZjhKTUwyL3dxOHlXd3h5TlQrNjh0NkpMRW5lbWhBc3Zn?= =?utf-8?B?SSt2NVk0VkNFSWo3UzRhTkhQM0tpN2t6ay9iZWYzVWE4T1NrOGVZUm83Z0Rz?= =?utf-8?Q?JMAG6HYOYw4=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 88b1835b-2237-4dda-ee59-08da3819d8a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2022 15:28:08.6201 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8P223MB0110 Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] avutil/wchar_filename, file_open: Support long file names on Windows X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > -----Original Message----- > From: ffmpeg-devel On Behalf Of nil- > admirari@mailo.com > Sent: Tuesday, May 17, 2022 5:07 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] avutil/wchar_filename, > file_open: Support long file names on Windows > > > stat wasn't already defined as win32_stat. > > win32_stat was already defined but not mapped. That's what my change > > does. > > There are two defines in os_support.h: > > # ifdef stat > # undef stat > # endif > # define stat _stati64 > > and > > DEF_FS_FUNCTION2(stat, _wstati64, _stati64, struct stat*) > > which defines win32_stat (not stat). This function takes struct stat*, > which due to previous define > expands into struct _stati64*. > > _stati64 and _wstati64 both take struct _stati64*, which is named > identically to the first function. > struct _stati64 expands into different structs depending on the value > of _USE_32BIT_TIME_T, > which your explicit structure definition does not capture, see: > https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat- > functions?view=msvc-170. > If someone defines_USE_32BIT_TIME_T, your code will fail to compile. Yes, that's true. But there are hundreds of other things someone could define which makes compilation fail. We don't need to accommodate for every single possibility, and it's not that _USE_32BIT_TIME_T would be required or the default for 32bit compilation. > C allows functions and structs to have identical names, preprocessor > does not; > therefore win32_stat must be used explicitly where stat is required as > in file.c:160 Except when you define a compatible struct with the same name as the function - like I did. > struct stat st; // expands into struct _stati64 on Windows. > # ifndef _WIN32 > ret = stat(filename, &st); > # else > ret = win32_stat(filename, &st); > # endif This could be removed after the patch. > However, no everyone follows: img2dec.c:504 and ipfsgateway.c:104 use > plain stat. > > if (stat(filename, &img_stat)) { > stat_ret = stat(ipfs_full_data_folder, &st); > > In these files, on Windows, both the struct and the function call > expand into _stati64, > and this time the function call bypasses the UTF-8 to wchar > conversion. > > Apparently yet another macro is necessary: > > #ifdef _WIN32 > #define ff_stat win32_stat > #else > #define ff_stat stat > #endif Probably you didn't spot it. It's already there: # define stat win32_stat Kind regards, softworkz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".