Modify

Opened 10 years ago

Closed 10 years ago

#1004 closed Bug (Fixed)

_PathFull bug in beta autoit 3.3.1

Reported by: godzail Owned by: Jpm
Milestone: 3.3.1.2 Component: AutoIt
Version: 3.3.1.0 Severity: None
Keywords: Cc:

Description

I tried the example in the help file for the function _PathFull but I received in output a wrong path.

--For example, if I run the example:

#include <file.au3>
;~ $TestPath = _PathFull("..\..\test")
$TestPath = _PathFull(@ScriptDir & "..\..\test")
ConsoleWrite(@ScriptDir & @lf & $TestPath & @CRLF)

result with autoit vers. 3.3.0 (OK):
C:\Program Files\AutoIt3\Beta\Examples\Helpfile
C:\Program Files\AutoIt3\Beta\Examples\test

result with autoit vers. 3.3.1 (WRONG):
C:\Program Files\AutoIt3\Beta\Examples\Helpfile
C:\Program Files\AutoIt3\Beta\Examples\Helpfile\Program Files\AutoIt3\Beta\Examples\test

-- If I add a backslash as you suggest ( $TestPath = _PathFull(@ScriptDir & "\..\..\test") )
result with autoit vers. 3.3.0 (OK):
C:\Program Files\AutoIt3\Beta\Examples\Helpfile
C:\Program Files\AutoIt3\Beta\test

result with autoit vers. 3.3.1 (WRONG):
C:\Program Files\AutoIt3\Beta\Examples\Helpfile
C:\Program Files\AutoIt3\Beta\Examples\Helpfile\Program Files\AutoIt3\Beta\test

-- it seems that the path contains a repeat of the main folder and subfolders.

Attachments (0)

Change History (6)

comment:1 Changed 10 years ago by Valik

  • Milestone set to 3.3.1.1
  • Owner set to Valik
  • Resolution set to Fixed
  • Status changed from new to closed

Fixed in version: 3.3.1.1

comment:2 Changed 10 years ago by therks

It seems the bug is not completely fixed. For UNC paths it repeats the network name.

#include <File.au3>
ConsoleWrite(_PathFull('\\NETWORK\Path\File.ext'))	

Outputs:
NETWORK\NETWORK\Path\File.ext

I guess we can't reopen tickets anymore? I haven't been around in a long time and didn't realize...

comment:3 Changed 10 years ago by Valik

  • Milestone 3.3.1.1 deleted
  • Resolution Fixed deleted
  • Status changed from closed to reopened

Sigh. This function is about to go the way of _StringAddThousandsSep(). Either I'm adding some obscure functionality or I'm fixing bugs that result from changing otherwise stable code.

Anyway, anonymous users could open tickets for all of a week or something. That's when it became apparent that people who didn't have any business being alive couldn't be trusted with the responsibility to manage a ticket's state.

comment:4 Changed 10 years ago by Rob Saunders <therks@…>

(that was me earlier)
Oh, please don't remove it! I quite like having the function there. I was going to attempt to fix it myself but I just got bogged down and confused. One thing I did notice, if it means anything, is that on line 487 the function is called recursively but fails to pass along the second parameter:

If StringInStr($sFullPath, "..") Then $sFullPath = _PathFull($sFullPath)

I assumed it should be:

If StringInStr($sFullPath, "..") Then $sFullPath = _PathFull($sFullPath, $sBasePath)

I know that doesn't fix the bug itself but I thought I would point it out. And is it just me, or does the error check on line 451 seem kind of redundant? I mean, is there really any way that $i could end up being 3?

comment:5 Changed 10 years ago by Valik

Looking at the code I think it's still possible to pass absolute garbage that can't be sensibly handled which the strange error check will catch. I'll take a look at the rest of the comments.

comment:6 Changed 10 years ago by Jpm

  • Milestone set to 3.3.1.2
  • Owner changed from Valik to Jpm
  • Resolution set to Fixed
  • Status changed from reopened to closed

Fixed in version: 3.3.1.2

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The owner will remain Jpm.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.