version 1.27, 2014/08/01 19:25:52 |
version 1.30, 2014/08/14 22:33:10 |
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
#ifdef HAVE_CONFIG_H |
|
#include "config.h" |
#include "config.h" |
#endif |
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
|
|
#ifdef USE_WCHAR |
#ifdef USE_WCHAR |
# include <locale.h> |
#include <locale.h> |
#endif |
#endif |
#include <stdint.h> |
#include <stdint.h> |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <unistd.h> |
#include <unistd.h> |
#ifdef USE_WCHAR |
#ifdef USE_WCHAR |
# include <wchar.h> |
#include <wchar.h> |
#endif |
#endif |
|
|
#include "mandoc.h" |
#include "mandoc.h" |
Line 232 ascii_hspan(const struct termp *p, const struct roffsu |
|
Line 230 ascii_hspan(const struct termp *p, const struct roffsu |
|
double r; |
double r; |
|
|
/* |
/* |
* Approximate based on character width. These are generated |
* Approximate based on character width. |
* entirely by eyeballing the screen, but appear to be correct. |
* None of these will be actually correct given that an inch on |
|
* the screen depends on character size, terminal, etc., etc. |
*/ |
*/ |
|
|
switch (su->unit) { |
switch (su->unit) { |
|
case SCALE_BU: |
|
r = su->scale * 10.0 / 240.0; |
|
break; |
case SCALE_CM: |
case SCALE_CM: |
r = su->scale * 4.0; |
r = su->scale * 10.0 / 2.54; |
break; |
break; |
|
case SCALE_FS: |
|
r = su->scale * 2730.666; |
|
break; |
case SCALE_IN: |
case SCALE_IN: |
r = su->scale * 10.0; |
r = su->scale * 10.0; |
break; |
break; |
|
case SCALE_MM: |
|
r = su->scale / 100.0; |
|
break; |
case SCALE_PC: |
case SCALE_PC: |
r = (su->scale * 10.0) / 6.0; |
r = su->scale * 10.0 / 6.0; |
break; |
break; |
case SCALE_PT: |
case SCALE_PT: |
r = (su->scale * 10.0) / 72.0; |
r = su->scale * 10.0 / 72.0; |
break; |
break; |
case SCALE_MM: |
|
r = su->scale / 1000.0; |
|
break; |
|
case SCALE_VS: |
case SCALE_VS: |
r = su->scale * 2.0 - 1.0; |
r = su->scale * 2.0 - 1.0; |
break; |
break; |
default: |
case SCALE_EN: |
|
/* FALLTHROUGH */ |
|
case SCALE_EM: |
r = su->scale; |
r = su->scale; |
break; |
break; |
|
case SCALE_MAX: |
|
abort(); |
|
/* NOTREACHED */ |
} |
} |
|
|
return(r); |
return(r); |