View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000799 | OpenMPT | libopenmpt | public | 2016-05-20 19:08 | 2016-05-20 19:37 |
| Reporter | jcowgill | Assigned To | manx | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | resolved | Resolution | fixed | ||
| Platform | x64 | OS | Debian Linux | OS Version | sid |
| Product Version | OpenMPT 1.25.04.00 / libopenmpt 0.2-beta16 (upgrade first) | ||||
| Target Version | OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first) | Fixed in Version | OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first) | ||
| Summary | 0000799: format_pattern_row_channel unlimited width does not work | ||||
| Description | Hi, The documentation for openmpt::module::format_pattern_row_channel (and other methods) says: However, if I pass 0 as the width I always get an empty string. James | ||||
| Tags | No tags attached. | ||||
| Attached Files | bug-799-fix-v1.patch (2,469 bytes)
Index: libopenmpt/libopenmpt_impl.cpp
===================================================================
--- libopenmpt/libopenmpt_impl.cpp (revision 6388)
+++ libopenmpt/libopenmpt_impl.cpp (working copy)
@@ -1273,9 +1273,6 @@
if ( c < 0 || c >= numchannels ) {
return std::make_pair( text, high );
}
- if ( width == 0 ) {
- return std::make_pair( text, high );
- }
// 0000000001111
// 1234567890123
// "NNN IIvVV EFF"
@@ -1284,30 +1281,30 @@
high.clear();
text += ( cell.IsNote() || cell.IsSpecialNote() ) ? m_sndFile->GetNoteName( cell.note, cell.instr ) : std::string("...");
high += ( cell.IsNote() ) ? std::string("nnn") : cell.IsSpecialNote() ? std::string("mmm") : std::string("...");
- if ( width >= 6 ) {
+ if ( ( width == 0 ) || ( width >= 6 ) ) {
text += std::string(" ");
high += std::string(" ");
text += cell.instr ? mpt::fmt::HEX0<2>( cell.instr ) : std::string("..");
high += cell.instr ? std::string("ii") : std::string("..");
}
- if ( width >= 9 ) {
+ if ( ( width == 0 ) || ( width >= 9 ) ) {
text += cell.IsPcNote() ? std::string(" ") + mpt::fmt::HEX0<2>( cell.GetValueVolCol() & 0xff ) : cell.volcmd != VOLCMD_NONE ? std::string( 1, m_sndFile->GetModSpecifications().GetVolEffectLetter( cell.volcmd ) ) + mpt::fmt::HEX0<2>( cell.vol ) : std::string(" ..");
high += cell.IsPcNote() ? std::string(" vv") : cell.volcmd != VOLCMD_NONE ? std::string("uvv") : std::string(" ..");
}
- if ( width >= 13 ) {
+ if ( ( width == 0 ) || ( width >= 13 ) ) {
text += std::string(" ");
high += std::string(" ");
text += cell.IsPcNote() ? mpt::fmt::HEX0<3>( cell.GetValueEffectCol() & 0x0fff ) : cell.command != CMD_NONE ? std::string( 1, m_sndFile->GetModSpecifications().GetEffectLetter( cell.command ) ) + mpt::fmt::HEX0<2>( cell.param ) : std::string("...");
high += cell.IsPcNote() ? std::string("eff") : cell.command != CMD_NONE ? std::string("eff") : std::string("...");
}
- if ( text.length() > width ) {
+ if ( ( width != 0 ) && ( text.length() > width ) ) {
text = text.substr( 0, width );
- } else if ( pad ) {
+ } else if ( ( width != 0 ) && pad ) {
text += std::string( width - text.length(), ' ' );
}
- if ( high.length() > width ) {
+ if ( ( width != 0 ) && ( high.length() > width ) ) {
high = high.substr( 0, width );
- } else if ( pad ) {
+ } else if ( ( width != 0 ) && pad ) {
high += std::string( width - high.length(), ' ' );
}
return std::make_pair( text, high );
| ||||
| Has the bug occurred in previous versions? | |||||
| Tested code revision (in case you know it) | |||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2016-05-20 19:08 | jcowgill | New Issue | |
| 2016-05-20 19:15 | manx | Assigned To | => manx |
| 2016-05-20 19:15 | manx | Status | new => assigned |
| 2016-05-20 19:28 | manx | Status | assigned => confirmed |
| 2016-05-20 19:28 | manx | Target Version | => OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first) |
| 2016-05-20 19:37 | manx | Note Added: 0002405 | |
| 2016-05-20 19:37 | manx | Status | confirmed => resolved |
| 2016-05-20 19:37 | manx | Fixed in Version | => OpenMPT 1.26.01.00 / libopenmpt 0.2-beta17 (upgrade first) |
| 2016-05-20 19:37 | manx | Resolution | open => fixed |
| 2016-05-20 19:37 | manx | File Added: bug-799-fix-v1.patch |