/*  call-seq:
 *    underline = value  ->  Bool
 *
 *  Set whether underlining is enabled for this font. Returns the old value.
 */
VALUE rbgm_ttf_setunderline(VALUE self,VALUE underline)
{
        TTF_Font *font;
        int style;

        Data_Get_Struct(self,TTF_Font,font);
        style = TTF_GetFontStyle(font);

        /* Font is currently underlined, and we want it to be not underlined. */
        if((style & TTF_STYLE_UNDERLINE) == TTF_STYLE_UNDERLINE && !underline)
          {
                TTF_SetFontStyle(font,style^TTF_STYLE_UNDERLINE);
                return Qtrue;                 /* The old value */
          }
        /* Font is not currently underlined, and we want it to be underlined. */
        else if(underline)
          {
                TTF_SetFontStyle(font,style|TTF_STYLE_UNDERLINE);
                return Qfalse;                        /* The old value */
          }
        /* No changes were necessary. */
        return underline;                      /* Same as old value */
}