gnats-prs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnats/454: mail-format incomplete support for multi-enum-in-file fields


From: Aaron . Hinck
Subject: gnats/454: mail-format incomplete support for multi-enum-in-file fields
Date: Fri, 07 Feb 2003 14:15:39 -0500

>Number:         454
>Notify-List:    
>Category:       gnats
>Synopsis:       mail-format incomplete support for multi-enum-in-file fields
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 07 14:15:39 -0500 2003
>Originator:     Aaron Hinck
>Release:        gnats 3.999.2
>Organization:
CES International
>Environment:

>Description:
When a multi-enum-in-file field is specified in a mail-format section, gnats 
evaluates the PR's field value as a whole NOT as a sequence of values.
>How-To-Repeat:
1) Create a "customers" flat-text-file under gnats-adm/
none:No Applicable Projects:foo1:foo2
proj1:Special Project 1:foo3:foo4
proj2:Secret Project 2:foo5:foo6
proj3:Project Bluebook:foo7:foo8


2) Define a new field in dbconfig:

field "Customer-Xref" {
    description "Which Projects are effected by this PR?"

    multi-enumerated-in-file {

        path "customers"

        field {
             "customer" "full-project-name" "project-manager" "project-engineer"
        }

        key "customer"
        default "none"
        separators " :"
    }

    query-default inexact-regexp
    textsearch
}

3) Add a reference to customer-xref[project-engineer] to the mail-format 
"audit-mail" and "initial-pr-notification":

mail-format "audit-mail" (and "initial-pr-notification") {

...

    to-addresses {
...
        "Customer-Xref[project-engineer]"
...
   }
}

4) Create a new PR, choose proj1 and proj3 for the customer-xref field.

The email header will have the email address of the other to-addresses entries 
BUT it will only have the email of the FIRST project-engineer.
>Fix:
adm.c -- getAdmSubfieldValue() only calls find_chain_entry_no_copy once -- 
meaning it can only get a single value -- ( whereas pr.c verifyMultiEnum() 
steps through the char* ).

Call chain ---

mail.c - composeMailMessage() -> generateMailAddress() ->

field.c get_field_value() -> 

adm.c getAdmSubfieldValue() -> find_chain_entry_nocopy()
>Unformatted:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]