[tex-live] dvipdfm-x and %b: missing break

Michael Rutter mjr19 at cam.ac.uk
Mon Jan 20 15:00:41 CET 2014

In dpx_file_apply_filter() in source/texk/dvipdfm-x/dpxfile.c from
rsync tug.org::tldevsrc/Build/source at a line number of around 996 I find

      case 'i': /* Input filename */
        need(cmd, n, size, strlen(input));
        strcpy(cmd + n, input);  n += strlen(input);
      case 'b':
        need(cmd, n, size, strlen(input));
        q = strrchr(input, '.'); /* wrong */
        if (q) {
          memcpy(cmd + n, input, (int) (q - input));
          n += (int) (q - input);
        } else {
          strcpy(cmd + n, input); n += strlen(input);
      case  'v': /* Version number, e.g. 1.4 */ {
       char buf[6];
       sprintf(buf, "1.%hu", (unsigned short) version);

I believe that there should be a "break;" at the end of the "case 'b':" 
section. Otherwise "%b" will be treated as "%b%v" (which is what I am 
observing in texlive as shipped with OpenSuSE 13.1).


Michael Rutter

More information about the tex-live mailing list